Usamos um padrão de 'rascunho' para lidar com o registro de artefatos. Usando um ObservableObject temporário em vez de escrever direto no SwiftData, garantimos que dados incompletos ou acidentais não poluam o banco de dados até o usuário salvar.
class RecordDraft: ObservableObject {
@Published var id: UUID = UUID()
@Published var name: String = ""
@Published var createdAt: Date = Date()
@Published var location: LocationInfoModel? = nil
@Published var artifactData: ArtifactDataModel? = nil
@Published var artifactDetails: ArtifactDetailsModel? = nil
@Published var audios: [AudioModel] = []
@Published var photos: [CapturedImageModel] = []
@Published var geolocation: MapMarkerModel? = nil
var asRecordModel: RecordModel {
let artifact = ArtifactModel(
location: location,
artifactData: artifactData,
artifactDetails: artifactDetails
)
return RecordModel(
id: id,
name: name,
createdAt: createdAt,
artifact: artifact,
audios: audios,
photos: photos,
geolocation: geolocation
)
}
}












