annotate GeoQuiz/Models/UserDataModel.swift @ 27:3f4b366d476d

add flag layout settings
author Dennis C. M. <dennis@denniscm.com>
date Thu, 10 Nov 2022 09:26:48 +0100
parents 425078c01194
children 9d6dd0e59c22
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // UserDataModel.swift
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 18/10/22.
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import Foundation
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9 import SwiftUI
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 14
diff changeset
11 struct UserDataModel: Codable {
14
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 // Settings
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 var haptics: Bool = true
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 var sound: Bool = true
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 var numberOfLives: Int = 25
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
17 var guessTheFlagShape: GuessTheFlagShape = .respectAspectRatio
14
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 // Profile
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 14
diff changeset
20 var username: String = "Unnamed"
14
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 var imageData: Data?
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 var uiImage: UIImage? {
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 guard let imageData = imageData else { return nil }
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 return UIImage(data: imageData)
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 }
136928bae534 add user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 }
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
28
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
29 enum GuessTheFlagShape: String, Codable, CaseIterable {
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
30 case respectAspectRatio = "Original"
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
31 case circular = "Circular"
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
32 case rectangular = "Rectangular"
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
33
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
34 var localizedName: LocalizedStringKey { LocalizedStringKey(rawValue) }
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
35 }