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.
68 lines
2.1 KiB
68 lines
2.1 KiB
//
|
|
// TeamRegistration.swift
|
|
// Padel Tournament
|
|
//
|
|
// Created by razmig on 10/03/2024.
|
|
//
|
|
|
|
import Foundation
|
|
import LeStorage
|
|
|
|
@Observable
|
|
class TeamRegistration: ModelObject, Storable {
|
|
static func resourceName() -> String { "team-registrations" }
|
|
|
|
var id: String = Store.randomId()
|
|
var tournament: String
|
|
var groupStage: String?
|
|
var registrationDate: Date?
|
|
var callDate: Date?
|
|
var bracketPosition: Int?
|
|
var groupStagePosition: Int?
|
|
var comment: String?
|
|
var source: String?
|
|
var sourceValue: String?
|
|
var logo: String?
|
|
var name: String?
|
|
|
|
internal init(tournament: String, groupStage: String? = nil, registrationDate: Date? = nil, callDate: Date? = nil, bracketPosition: Int? = nil, groupStagePosition: Int? = nil, comment: String? = nil, source: String? = nil, sourceValue: String? = nil, logo: String? = nil, name: String? = nil) {
|
|
self.tournament = tournament
|
|
self.groupStage = groupStage
|
|
self.registrationDate = registrationDate
|
|
self.callDate = callDate
|
|
self.bracketPosition = bracketPosition
|
|
self.groupStagePosition = groupStagePosition
|
|
self.comment = comment
|
|
self.source = source
|
|
self.sourceValue = sourceValue
|
|
self.logo = logo
|
|
self.name = name
|
|
}
|
|
|
|
func qualified() -> Bool {
|
|
groupStagePosition != nil && bracketPosition != nil
|
|
}
|
|
|
|
var playerRegistrations: [PlayerRegistration] {
|
|
Store.main.filter { $0.teamRegistration == self.id }
|
|
}
|
|
|
|
override func deleteDependencies() throws {
|
|
try Store.main.deleteDependencies(items: self.playerRegistrations)
|
|
}
|
|
|
|
enum CodingKeys: String, CodingKey {
|
|
case _id = "id"
|
|
case _tournament = "tournament"
|
|
case _groupStage = "groupStage"
|
|
case _registrationDate = "registrationDate"
|
|
case _callDate = "callDate"
|
|
case _bracketPosition = "bracketPosition"
|
|
case _groupStagePosition = "groupStagePosition"
|
|
case _comment = "comment"
|
|
case _source = "source"
|
|
case _sourceValue = "sourceValue"
|
|
case _logo = "logo"
|
|
case _name = "name"
|
|
}
|
|
}
|
|
|