1→// 2→// Project.swift 3→// Planner2026-iOS 4→// 5→// Project container for organizing tasks 6→// 7→ 8→import Foundation 9→ 10→enum ProjectStatus: String, Codable, CaseIterable { 11→ case active = "Active" 12→ case onHold = "On Hold" 13→ case completed = "Completed" 14→ case archived = "Archived" 15→} 16→ 17→struct Project: Identifiable, Codable, Hashable { 18→ var id: UUID = UUID() 19→ var name: String 20→ var projectDescription: String = "" 21→ var status: ProjectStatus = .active 22→ var deadline: Date? 23→ var colorHex: String = "#007AFF" 24→ var icon: String = "folder.fill" 25→ var taskIds: [UUID] = [] 26→ var tags: [UUID] = [] 27→ 28→ // Location 29→ var defaultLocationId: UUID? // Default location for new tasks 30→ 31→ // AI 32→ var isAISuggested: Bool = false 33→ 34→ // Timestamps 35→ var createdAt: Date = Date() 36→ var completedAt: Date? 37→ var modifiedAt: Date = Date() 38→ 39→ // MARK: - Computed Properties 40→ 41→ var isActive: Bool { 42→ status == .active 43→ } 44→ 45→ var isCompleted: Bool { 46→ status == .completed 47→ } 48→ 49→ var taskCount: Int { 50→ taskIds.count 51→ } 52→ 53→ var isOverdue: Bool { 54→ guard let deadline = deadline, status != .completed else { return false } 55→ return deadline < Date() 56→ } 57→} 58→ 59→// MARK: - Preview Support 60→ 61→#if DEBUG 62→extension Project { 63→ static var preview: Project { 64→ Project( 65→ name: "Mobile App Redesign", 66→ projectDescription: "Complete overhaul of the mobile application UI/UX", 67→ deadline: Calendar.current.date(byAdding: .month, value: 1, to: Date()), 68→ colorHex: "#5856D6", 69→ icon: "iphone" 70→ ) 71→ } 72→ 73→ static var samples: [Project] { 74→ [ 75→ Project( 76→ name: "Q1 Marketing Campaign", 77→ projectDescription: "Launch new product marketing", 78→ colorHex: "#FF9500", 79→ icon: "megaphone.fill" 80→ ), 81→ Project( 82→ name: "Personal Fitness Goals", 83→ projectDescription: "Health and workout tracking", 84→ colorHex: "#34C759", 85→ icon: "heart.fill" 86→ ), 87→ Project( 88→ name: "Home Renovation", 89→ projectDescription: "Kitchen and bathroom updates", 90→ status: .onHold, 91→ colorHex: "#FF3B30", 92→ icon: "house.fill" 93→ ) 94→ ] 95→ } 96→} 97→#endif 98→ Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.