Files
Gas-Tank-AR-App/GasTankAR/Domain/Leads/LeadUseCases.swift

34 lines
932 B
Swift

import Foundation
struct LoadLeadsUseCase {
let repository: any LeadRepository
func execute(salesCode: String) async throws -> [Lead] {
try await repository.leads(for: salesCode, query: LeadQuery())
}
}
struct SearchLeadsUseCase {
let repository: any LeadRepository
func execute(salesCode: String, query: LeadQuery) async throws -> [Lead] {
try await repository.leads(for: salesCode, query: query.normalized)
}
}
struct SetLeadBookmarkUseCase {
let repository: any LeadRepository
func execute(_ bookmarked: Bool, leadID: String, salesCode: String) async throws -> Lead {
try await repository.setBookmark(bookmarked, leadID: leadID, salesCode: salesCode)
}
}
struct GetLeadUseCase {
let repository: any LeadRepository
func execute(id: String, salesCode: String) async throws -> Lead {
try await repository.lead(id: id, salesCode: salesCode)
}
}