Gassi: Tabs Treffen + Stamm-Gassis wie in der PWA
In der PWA ist die Seite 'Gassi-Treffen' mit drei Tabs:
- Treffen (walks.py — sich verabreden)
- Challenge (Monatsfoto)
- Stamm-Gassis (gassi_zeiten.py — regelmäßige Runden)
Mein bisheriger Mehr-Eintrag hieß 'Stamm-Gassi-Zeiten' und zeigte nur die
Stamm-Gassi-Funktion isoliert — das stimmte nicht mit der PWA überein.
Neu:
- GassiView mit Segmented Picker (Treffen / Stamm-Gassis)
- GassiTreffenList: GET /api/walks?lat&lon&radius=20000, Liste mit Datum,
Uhrzeit, Ort, Teilnehmer-Zahl
- GassiTreffenDetail: Karte mit Pin, Stats, Beitreten/Verlassen
(POST/DELETE /api/walks/{id}/join), Owner-Check
- AddWalkSheet: Titel, Datum, Uhrzeit, Treffpunkt-Name, Max-Teilnehmer,
Beschreibung — POST /api/walks
- StammGassisList = bisherige GassiZeitenView umbenannt + Nav-Title raus
(wird vom GassiView vergeben)
Im Mehr-Tab heißt der Link jetzt 'Gassi-Treffen' (pawprint-Icon) statt
'Stamm-Gassi-Zeiten' (alarm-Icon).
DTOs: WalkMeeting, WalkCreateBody, WalkJoinBody.
This commit is contained in:
parent
5c4754caff
commit
b49883ca79
9 changed files with 684 additions and 5 deletions
|
|
@ -135,6 +135,39 @@ struct GassiZeit: Decodable, Identifiable {
|
|||
let dogRasse: String?
|
||||
}
|
||||
|
||||
// MARK: - Walks (Gassi-Treffen)
|
||||
|
||||
struct WalkMeeting: Decodable, Identifiable {
|
||||
let id: Int
|
||||
let userId: Int
|
||||
let titel: String
|
||||
let datum: String // YYYY-MM-DD
|
||||
let uhrzeit: String // HH:MM
|
||||
let lat: Double
|
||||
let lon: Double
|
||||
let ortName: String?
|
||||
let maxTeilnehmer: Int
|
||||
let beschreibung: String?
|
||||
let status: String?
|
||||
let veranstalterName: String?
|
||||
let teilnehmerCount: Int?
|
||||
}
|
||||
|
||||
struct WalkCreateBody: Encodable {
|
||||
let titel: String
|
||||
let datum: String
|
||||
let uhrzeit: String
|
||||
let lat: Double
|
||||
let lon: Double
|
||||
let ortName: String?
|
||||
let maxTeilnehmer: Int
|
||||
let beschreibung: String?
|
||||
}
|
||||
|
||||
struct WalkJoinBody: Encodable {
|
||||
let dogIds: [Int]
|
||||
}
|
||||
|
||||
struct GassiZeitCreateBody: Encodable {
|
||||
let dogId: Int?
|
||||
let wochentage: [String]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue