diff --git a/PadelClub/Data/Club.swift b/PadelClub/Data/Club.swift index c24cf26..a3b61f5 100644 --- a/PadelClub/Data/Club.swift +++ b/PadelClub/Data/Club.swift @@ -12,8 +12,6 @@ import LeStorage @Observable final class Club: BaseClub { - static var copyServerResponse: Bool { return true } - func clubTitle(_ displayStyle: DisplayStyle = .wide) -> String { switch displayStyle { case .wide, .title: diff --git a/PadelClub/Data/Gen/BaseClub.swift b/PadelClub/Data/Gen/BaseClub.swift index ef5ea7a..c55acf3 100644 --- a/PadelClub/Data/Gen/BaseClub.swift +++ b/PadelClub/Data/Gen/BaseClub.swift @@ -10,6 +10,7 @@ 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 diff --git a/PadelClub/Data/Gen/BaseCourt.swift b/PadelClub/Data/Gen/BaseCourt.swift index 14ac65f..eb57668 100644 --- a/PadelClub/Data/Gen/BaseCourt.swift +++ b/PadelClub/Data/Gen/BaseCourt.swift @@ -10,6 +10,7 @@ class BaseCourt: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "courts" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var index: Int = 0 diff --git a/PadelClub/Data/Gen/BaseCustomUser.swift b/PadelClub/Data/Gen/BaseCustomUser.swift index 4295e19..01ef678 100644 --- a/PadelClub/Data/Gen/BaseCustomUser.swift +++ b/PadelClub/Data/Gen/BaseCustomUser.swift @@ -10,6 +10,7 @@ class BaseCustomUser: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "users" } static func tokenExemptedMethods() -> [HTTPMethod] { return [.post] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var username: String = "" diff --git a/PadelClub/Data/Gen/BaseDateInterval.swift b/PadelClub/Data/Gen/BaseDateInterval.swift index 4de8027..4f3f09c 100644 --- a/PadelClub/Data/Gen/BaseDateInterval.swift +++ b/PadelClub/Data/Gen/BaseDateInterval.swift @@ -10,6 +10,7 @@ class BaseDateInterval: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "date-intervals" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var event: String = "" diff --git a/PadelClub/Data/Gen/BaseDrawLog.swift b/PadelClub/Data/Gen/BaseDrawLog.swift index 78fe350..b60159e 100644 --- a/PadelClub/Data/Gen/BaseDrawLog.swift +++ b/PadelClub/Data/Gen/BaseDrawLog.swift @@ -10,6 +10,7 @@ class BaseDrawLog: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "draw-logs" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var tournament: String = "" diff --git a/PadelClub/Data/Gen/BaseEvent.swift b/PadelClub/Data/Gen/BaseEvent.swift index 7361c11..910f8ca 100644 --- a/PadelClub/Data/Gen/BaseEvent.swift +++ b/PadelClub/Data/Gen/BaseEvent.swift @@ -10,6 +10,7 @@ class BaseEvent: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "events" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var creator: String? = nil diff --git a/PadelClub/Data/Gen/BaseGroupStage.swift b/PadelClub/Data/Gen/BaseGroupStage.swift index 8c4c170..97c9131 100644 --- a/PadelClub/Data/Gen/BaseGroupStage.swift +++ b/PadelClub/Data/Gen/BaseGroupStage.swift @@ -10,6 +10,7 @@ class BaseGroupStage: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "group-stages" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var tournament: String = "" diff --git a/PadelClub/Data/Gen/BaseMatch.swift b/PadelClub/Data/Gen/BaseMatch.swift index d6e3dcc..7333921 100644 --- a/PadelClub/Data/Gen/BaseMatch.swift +++ b/PadelClub/Data/Gen/BaseMatch.swift @@ -10,6 +10,7 @@ class BaseMatch: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "matches" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var round: String? = nil diff --git a/PadelClub/Data/Gen/BaseMatchScheduler.swift b/PadelClub/Data/Gen/BaseMatchScheduler.swift index 84a40de..75bd7f5 100644 --- a/PadelClub/Data/Gen/BaseMatchScheduler.swift +++ b/PadelClub/Data/Gen/BaseMatchScheduler.swift @@ -10,6 +10,7 @@ class BaseMatchScheduler: BaseModelObject, Storable { static func resourceName() -> String { return "match-scheduler" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var tournament: String = "" diff --git a/PadelClub/Data/Gen/BaseMonthData.swift b/PadelClub/Data/Gen/BaseMonthData.swift index 890557c..3c7c176 100644 --- a/PadelClub/Data/Gen/BaseMonthData.swift +++ b/PadelClub/Data/Gen/BaseMonthData.swift @@ -10,6 +10,7 @@ class BaseMonthData: BaseModelObject, Storable { static func resourceName() -> String { return "month-data" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var monthKey: String = "" diff --git a/PadelClub/Data/Gen/BasePlayerRegistration.swift b/PadelClub/Data/Gen/BasePlayerRegistration.swift index d8c2ab3..2f32a27 100644 --- a/PadelClub/Data/Gen/BasePlayerRegistration.swift +++ b/PadelClub/Data/Gen/BasePlayerRegistration.swift @@ -10,6 +10,7 @@ class BasePlayerRegistration: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "player-registrations" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var teamRegistration: String? = nil diff --git a/PadelClub/Data/Gen/BasePurchase.swift b/PadelClub/Data/Gen/BasePurchase.swift index ddd7609..bd16fda 100644 --- a/PadelClub/Data/Gen/BasePurchase.swift +++ b/PadelClub/Data/Gen/BasePurchase.swift @@ -8,6 +8,7 @@ class BasePurchase: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "purchases" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: UInt64 = 0 var user: String = "" diff --git a/PadelClub/Data/Gen/BaseRound.swift b/PadelClub/Data/Gen/BaseRound.swift index 4ffcac1..b009607 100644 --- a/PadelClub/Data/Gen/BaseRound.swift +++ b/PadelClub/Data/Gen/BaseRound.swift @@ -10,6 +10,7 @@ class BaseRound: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "rounds" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var tournament: String = "" diff --git a/PadelClub/Data/Gen/BaseTeamRegistration.swift b/PadelClub/Data/Gen/BaseTeamRegistration.swift index 1d6787c..2d0f596 100644 --- a/PadelClub/Data/Gen/BaseTeamRegistration.swift +++ b/PadelClub/Data/Gen/BaseTeamRegistration.swift @@ -10,6 +10,7 @@ class BaseTeamRegistration: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "team-registrations" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var tournament: String = "" @@ -195,4 +196,4 @@ class BaseTeamRegistration: SyncedModelObject, SyncedStorable { ] } -} \ No newline at end of file +} diff --git a/PadelClub/Data/Gen/BaseTeamScore.swift b/PadelClub/Data/Gen/BaseTeamScore.swift index 6efe8ba..4f3ab82 100644 --- a/PadelClub/Data/Gen/BaseTeamScore.swift +++ b/PadelClub/Data/Gen/BaseTeamScore.swift @@ -10,6 +10,7 @@ class BaseTeamScore: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "team-scores" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var match: String = "" diff --git a/PadelClub/Data/Gen/BaseTournament.swift b/PadelClub/Data/Gen/BaseTournament.swift index 0b6d3c3..dbe3271 100644 --- a/PadelClub/Data/Gen/BaseTournament.swift +++ b/PadelClub/Data/Gen/BaseTournament.swift @@ -10,6 +10,7 @@ class BaseTournament: SyncedModelObject, SyncedStorable { static func resourceName() -> String { return "tournaments" } static func tokenExemptedMethods() -> [HTTPMethod] { return [] } + static var copyServerResponse: Bool = false var id: String = Store.randomId() var event: String? = nil diff --git a/PadelClub/Data/Gen/Club.json b/PadelClub/Data/Gen/Club.json index 14a9fc7..cdaf5e2 100644 --- a/PadelClub/Data/Gen/Club.json +++ b/PadelClub/Data/Gen/Club.json @@ -4,6 +4,7 @@ "name": "Club", "synchronizable": true, "observable": true, + "copy_server_response": "true", "properties": [ { "name": "id", diff --git a/PadelClub/Data/Gen/generator.py b/PadelClub/Data/Gen/generator.py index e9a8a85..7faa6e9 100644 --- a/PadelClub/Data/Gen/generator.py +++ b/PadelClub/Data/Gen/generator.py @@ -24,6 +24,7 @@ class SwiftModelGenerator: resource = self.make_resource_name(model_name) resource_name = model_data.get("resource_name", resource) token_exempted = model_data.get("tokenExemptedMethods", []) + copy_server_response = model_data.get("copy_server_response", "false") lines = ["// Generated by SwiftModelGenerator", "// Do not modify this file manually", ""] @@ -43,7 +44,7 @@ class SwiftModelGenerator: lines.append("") # Add SyncedStorable protocol requirements - lines.extend(self._generate_protocol_requirements(resource_name, token_exempted)) + lines.extend(self._generate_protocol_requirements(resource_name, token_exempted, copy_server_response)) lines.append("") # Properties @@ -371,7 +372,7 @@ class SwiftModelGenerator: lines.append(" }") return lines - def _generate_protocol_requirements(self, resource_name: str, token_exempted: List[str]) -> List[str]: + def _generate_protocol_requirements(self, resource_name: str, token_exempted: List[str], copy_server_response: str) -> List[str]: """Generate the static functions required by SyncedStorable protocol.""" # Convert HTTP methods to proper format formatted_methods = [f".{method.lower()}" for method in token_exempted] @@ -380,6 +381,7 @@ class SwiftModelGenerator: return [ f" static func resourceName() -> String {{ return \"{resource_name}\" }}", f" static func tokenExemptedMethods() -> [HTTPMethod] {{ return [{methods_str}] }}", + f" static var copyServerResponse: Bool = {copy_server_response}", ] def _generate_relationships(self, model_name, properties: List[Dict[str, Any]]) -> List[str]: