Files
Gas-Tank-AR-App/GasTankAR/Domain/AR/ARProject.swift

33 lines
842 B
Swift

import Foundation
/// Neutral projection for project selection. Persistence and customer associations
/// belong to the host application's service.
struct ARProject: Identifiable, Equatable {
let id: UUID
let name: String
let tank: Tank
let createdAt: Date
let source: Source
let reference: String?
enum Source { case supplied, custom }
}
@MainActor
protocol ARProjectsProviding {
func updateProject(id: UUID, name: String, tank: Tank) throws -> ARProject
func deleteProject(id: UUID) throws
func loadProjects() throws -> [ARProject]
func createProject(name: String, tank: Tank) throws -> ARProject
}
nonisolated extension TankSize {
var volumeTitle: String {
switch self {
case .t1_2: "2.700 l"
case .t2_1: "4.850 l"
case .t2_9: "6.400 l"
}
}
}