chore: remove legacy itinerary models and services
Removed: - CustomItineraryItem - TravelDayOverride - CustomItemService - CustomItemSubscriptionService - TravelOverrideService - CustomItemRow These are replaced by unified ItineraryItem model and service. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,94 +0,0 @@
|
||||
//
|
||||
// CustomItineraryItem.swift
|
||||
// SportsTime
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import CoreLocation
|
||||
|
||||
struct CustomItineraryItem: Identifiable, Codable, Hashable {
|
||||
let id: UUID
|
||||
let tripId: UUID
|
||||
var category: ItemCategory
|
||||
var title: String
|
||||
var day: Int // Day number (1-indexed)
|
||||
var sortOrder: Double // Position within day (allows insertion between items)
|
||||
let createdAt: Date
|
||||
var modifiedAt: Date
|
||||
|
||||
// Optional location for mappable items (from MapKit search)
|
||||
var latitude: Double?
|
||||
var longitude: Double?
|
||||
var address: String?
|
||||
|
||||
/// Whether this item has a location and can be shown on the map
|
||||
var isMappable: Bool {
|
||||
latitude != nil && longitude != nil
|
||||
}
|
||||
|
||||
/// Get coordinate if mappable
|
||||
var coordinate: CLLocationCoordinate2D? {
|
||||
guard let lat = latitude, let lon = longitude else { return nil }
|
||||
return CLLocationCoordinate2D(latitude: lat, longitude: lon)
|
||||
}
|
||||
|
||||
init(
|
||||
id: UUID = UUID(),
|
||||
tripId: UUID,
|
||||
category: ItemCategory,
|
||||
title: String,
|
||||
day: Int,
|
||||
sortOrder: Double = 0.0,
|
||||
createdAt: Date = Date(),
|
||||
modifiedAt: Date = Date(),
|
||||
latitude: Double? = nil,
|
||||
longitude: Double? = nil,
|
||||
address: String? = nil
|
||||
) {
|
||||
self.id = id
|
||||
self.tripId = tripId
|
||||
self.category = category
|
||||
self.title = title
|
||||
self.day = day
|
||||
self.sortOrder = sortOrder
|
||||
self.createdAt = createdAt
|
||||
self.modifiedAt = modifiedAt
|
||||
self.latitude = latitude
|
||||
self.longitude = longitude
|
||||
self.address = address
|
||||
}
|
||||
|
||||
enum ItemCategory: String, Codable, CaseIterable {
|
||||
case restaurant
|
||||
case hotel
|
||||
case activity
|
||||
case note
|
||||
|
||||
var icon: String {
|
||||
switch self {
|
||||
case .restaurant: return "🍽️"
|
||||
case .hotel: return "🏨"
|
||||
case .activity: return "🎯"
|
||||
case .note: return "📝"
|
||||
}
|
||||
}
|
||||
|
||||
var label: String {
|
||||
switch self {
|
||||
case .restaurant: return "Restaurant"
|
||||
case .hotel: return "Hotel"
|
||||
case .activity: return "Activity"
|
||||
case .note: return "Note"
|
||||
}
|
||||
}
|
||||
|
||||
var systemImage: String {
|
||||
switch self {
|
||||
case .restaurant: return "fork.knife"
|
||||
case .hotel: return "bed.double.fill"
|
||||
case .activity: return "figure.run"
|
||||
case .note: return "note.text"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
//
|
||||
// TravelDayOverride.swift
|
||||
// SportsTime
|
||||
//
|
||||
// Stores user-customized travel day positions
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
/// Represents a user override of the default travel day placement.
|
||||
/// Travel segments normally appear on the day after the last game in the departure city.
|
||||
/// This model allows users to drag travel to a different day within valid bounds.
|
||||
struct TravelDayOverride: Identifiable, Codable, Hashable {
|
||||
let id: UUID
|
||||
let tripId: UUID
|
||||
/// Stable identifier for the travel segment (e.g., "travel:houston->arlington")
|
||||
let travelAnchorId: String
|
||||
/// The day number (1-indexed) where the travel should display
|
||||
var displayDay: Int
|
||||
let createdAt: Date
|
||||
var modifiedAt: Date
|
||||
|
||||
init(
|
||||
id: UUID = UUID(),
|
||||
tripId: UUID,
|
||||
travelAnchorId: String,
|
||||
displayDay: Int,
|
||||
createdAt: Date = Date(),
|
||||
modifiedAt: Date = Date()
|
||||
) {
|
||||
self.id = id
|
||||
self.tripId = tripId
|
||||
self.travelAnchorId = travelAnchorId
|
||||
self.displayDay = displayDay
|
||||
self.createdAt = createdAt
|
||||
self.modifiedAt = modifiedAt
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user