songyc macbook b209199c2d feat: Setup app shell, SwiftData models, and real-time tracking engine
- Initialize iOS project with 6-tab navigation structure
- Configure custom Light/Dark themes and AppColors
- Define SwiftData models for Tasks, Tags, Goals, and TrackingRecords
- Setup relationships (Super/Sub tags) and cascade delete rules
- Implement Observable TrackingEngine for real-time timer updates
2026-06-26 03:32:29 +09:00

43 lines
972 B
Swift

import Foundation
import SwiftData
enum TaskType: String, Codable, CaseIterable {
case timer
case counter
}
@Model
final class TaskItem {
var id: UUID
var name: String
var icon: String
var taskType: TaskType
var createdAt: Date
var isArchived: Bool
var sortOrder: Int
@Relationship(deleteRule: .nullify, inverse: \TagEntity.tasks)
var tags: [TagEntity] = []
@Relationship(deleteRule: .cascade, inverse: \TrackingRecord.task)
var trackingRecords: [TrackingRecord] = []
init(
id: UUID = UUID(),
name: String,
icon: String = "star",
taskType: TaskType = .timer,
createdAt: Date = .now,
isArchived: Bool = false,
sortOrder: Int = 0
) {
self.id = id
self.name = name
self.icon = icon
self.taskType = taskType
self.createdAt = createdAt
self.isArchived = isArchived
self.sortOrder = sortOrder
}
}