Skip to content

Fix Protocol Conformance Errors #239

@DrunkOnJava

Description

@DrunkOnJava

Issue Description

Multiple types claim to conform to protocols but are missing required properties or methods, causing compilation failures.

ServiceError Protocol Conformance Issues

The following error types need to implement the telemetryData property:

  • NetworkError
  • ExportError
  • SyncError
  • BarcodeLookupError
  • AuthenticationError
  • StorageError
  • SecurityError
  • MonitoringError

Required: var telemetryData: TelemetryData { get }

Repository Protocol Conformance Issues

MockItemRepository missing methods:

  • fetchInDateRange(from:to:)
  • updateAll(_:)
  • search(_:) (incorrect argument labels)
  • findByBarcode(_:)

MockCategoryRepository missing methods:

  • fetchBuiltIn()
  • fetchCustom()
  • canDelete(_:)
  • fetch(id:)

MockSoundService missing methods:

  • playHapticFeedback(_:)

MockScanHistory missing methods:

  • search(_:)
  • findByBarcode(_:)

MockOfflineScanQueue missing methods:

  • getAllPendingScans()
  • add(_:)
  • remove(_:)
  • clearAll()
  • getPendingCount()

MockNetworkMonitor missing properties:

  • connectionStatusStream

MockBarcodeLookupService missing methods:

  • lookupItem(barcode:)
  • lookupBatch(_:)
  • isSupported(barcode:)

MockReceiptRepository missing methods:

  • remove(forKey:)
  • fetchByDateRange(from:to:)
  • fetchByStore(_:)
  • fetchByItemId(_:)
  • fetchAboveAmount(_:)

SwiftUI View Conformance Issues

  • VoiceSearchView missing body property for View protocol

ObservableObject Conformance Issues

Classes used with @StateObject/@ObservedObject missing ObservableObject conformance:

  • LocationsListViewModel
  • AnalyticsDashboardViewModel
  • ReceiptsListViewModel
  • BatchScannerViewModel
  • DocumentScannerViewModel
  • BarcodeScannerViewModel
  • InventoryCoordinator
  • LocationsCoordinator
  • AnalyticsCoordinator

Method Signature Issues

  • ItemRepository.search(query:) vs required search(_:) - incorrect argument labels

Root Cause

  1. Protocols updated but conforming types not updated
  2. Mock implementations missing required methods
  3. Incorrect method signatures in protocol conformance
  4. Missing ObservableObject conformance for ViewModels
  5. TelemetryData type not defined

Solution Plan

  1. Define TelemetryData struct in Foundation-Core
  2. Implement telemetryData property for all ServiceError conforming types
  3. Add missing methods to all mock repository implementations
  4. Fix method signatures to match protocol requirements
  5. Add ObservableObject conformance to all ViewModels
  6. Implement missing View body for SwiftUI views
  7. Update argument labels to match protocol definitions

Priority

High - These errors prevent successful compilation and proper protocol usage.

Acceptance Criteria

  • All "does not conform to protocol" errors are resolved
  • TelemetryData type is properly defined and implemented
  • All mock repositories have complete method implementations
  • All ViewModels conform to ObservableObject
  • All SwiftUI Views have proper body implementations
  • Method signatures match protocol requirements exactly

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions