You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
5.6 KiB
150 lines
5.6 KiB
// Generated by SwiftModelGenerator
|
|
// Do not modify this file manually
|
|
|
|
import Foundation
|
|
import LeStorage
|
|
import SwiftUI
|
|
|
|
@Observable
|
|
class BaseClub: SyncedModelObject, SyncedStorable {
|
|
|
|
static func resourceName() -> String { return "clubs" }
|
|
static func tokenExemptedMethods() -> [HTTPMethod] { return [] }
|
|
static var copyServerResponse: Bool = true
|
|
|
|
var id: String = Store.randomId()
|
|
var creator: String? = nil
|
|
var name: String = ""
|
|
var acronym: String = ""
|
|
var phone: String? = nil
|
|
var code: String? = nil
|
|
var address: String? = nil
|
|
var city: String? = nil
|
|
var zipCode: String? = nil
|
|
var latitude: Double? = nil
|
|
var longitude: Double? = nil
|
|
var courtCount: Int = 2
|
|
var broadcastCode: String? = nil
|
|
var timezone: String? = TimeZone.current.identifier
|
|
|
|
init(
|
|
id: String = Store.randomId(),
|
|
creator: String? = nil,
|
|
name: String = "",
|
|
acronym: String = "",
|
|
phone: String? = nil,
|
|
code: String? = nil,
|
|
address: String? = nil,
|
|
city: String? = nil,
|
|
zipCode: String? = nil,
|
|
latitude: Double? = nil,
|
|
longitude: Double? = nil,
|
|
courtCount: Int = 2,
|
|
broadcastCode: String? = nil,
|
|
timezone: String? = TimeZone.current.identifier
|
|
) {
|
|
super.init()
|
|
self.id = id
|
|
self.creator = creator
|
|
self.name = name
|
|
self.acronym = acronym
|
|
self.phone = phone
|
|
self.code = code
|
|
self.address = address
|
|
self.city = city
|
|
self.zipCode = zipCode
|
|
self.latitude = latitude
|
|
self.longitude = longitude
|
|
self.courtCount = courtCount
|
|
self.broadcastCode = broadcastCode
|
|
self.timezone = timezone
|
|
}
|
|
required public override init() {
|
|
super.init()
|
|
}
|
|
|
|
enum CodingKeys: String, CodingKey {
|
|
case _id = "id"
|
|
case _creator = "creator"
|
|
case _name = "name"
|
|
case _acronym = "acronym"
|
|
case _phone = "phone"
|
|
case _code = "code"
|
|
case _address = "address"
|
|
case _city = "city"
|
|
case _zipCode = "zipCode"
|
|
case _latitude = "latitude"
|
|
case _longitude = "longitude"
|
|
case _courtCount = "courtCount"
|
|
case _broadcastCode = "broadcastCode"
|
|
case _timezone = "timezone"
|
|
}
|
|
|
|
required init(from decoder: Decoder) throws {
|
|
let container = try decoder.container(keyedBy: CodingKeys.self)
|
|
self.id = try container.decodeIfPresent(String.self, forKey: ._id) ?? Store.randomId()
|
|
self.creator = try container.decodeIfPresent(String.self, forKey: ._creator) ?? nil
|
|
self.name = try container.decodeIfPresent(String.self, forKey: ._name) ?? ""
|
|
self.acronym = try container.decodeIfPresent(String.self, forKey: ._acronym) ?? ""
|
|
self.phone = try container.decodeIfPresent(String.self, forKey: ._phone) ?? nil
|
|
self.code = try container.decodeIfPresent(String.self, forKey: ._code) ?? nil
|
|
self.address = try container.decodeIfPresent(String.self, forKey: ._address) ?? nil
|
|
self.city = try container.decodeIfPresent(String.self, forKey: ._city) ?? nil
|
|
self.zipCode = try container.decodeIfPresent(String.self, forKey: ._zipCode) ?? nil
|
|
self.latitude = try container.decodeIfPresent(Double.self, forKey: ._latitude) ?? nil
|
|
self.longitude = try container.decodeIfPresent(Double.self, forKey: ._longitude) ?? nil
|
|
self.courtCount = try container.decodeIfPresent(Int.self, forKey: ._courtCount) ?? 2
|
|
self.broadcastCode = try container.decodeIfPresent(String.self, forKey: ._broadcastCode) ?? nil
|
|
self.timezone = try container.decodeIfPresent(String.self, forKey: ._timezone) ?? TimeZone.current.identifier
|
|
try super.init(from: decoder)
|
|
}
|
|
|
|
override func encode(to encoder: Encoder) throws {
|
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
|
try container.encode(self.id, forKey: ._id)
|
|
try container.encode(self.creator, forKey: ._creator)
|
|
try container.encode(self.name, forKey: ._name)
|
|
try container.encode(self.acronym, forKey: ._acronym)
|
|
try container.encode(self.phone, forKey: ._phone)
|
|
try container.encode(self.code, forKey: ._code)
|
|
try container.encode(self.address, forKey: ._address)
|
|
try container.encode(self.city, forKey: ._city)
|
|
try container.encode(self.zipCode, forKey: ._zipCode)
|
|
try container.encode(self.latitude, forKey: ._latitude)
|
|
try container.encode(self.longitude, forKey: ._longitude)
|
|
try container.encode(self.courtCount, forKey: ._courtCount)
|
|
try container.encode(self.broadcastCode, forKey: ._broadcastCode)
|
|
try container.encode(self.timezone, forKey: ._timezone)
|
|
try super.encode(to: encoder)
|
|
}
|
|
|
|
func creatorValue() -> CustomUser? {
|
|
guard let creator = self.creator else { return nil }
|
|
return Store.main.findById(creator)
|
|
}
|
|
|
|
func copy(from other: any Storable) {
|
|
guard let club = other as? BaseClub else { return }
|
|
self.id = club.id
|
|
self.creator = club.creator
|
|
self.name = club.name
|
|
self.acronym = club.acronym
|
|
self.phone = club.phone
|
|
self.code = club.code
|
|
self.address = club.address
|
|
self.city = club.city
|
|
self.zipCode = club.zipCode
|
|
self.latitude = club.latitude
|
|
self.longitude = club.longitude
|
|
self.courtCount = club.courtCount
|
|
self.broadcastCode = club.broadcastCode
|
|
self.timezone = club.timezone
|
|
}
|
|
|
|
static func relationships() -> [Relationship] {
|
|
return [
|
|
Relationship(type: CustomUser.self, keyPath: \BaseClub.creator),
|
|
]
|
|
}
|
|
|
|
} |