feat(vessel): Schiffsflotte im Profil und Logbuch-Auswahl

Benutzerweiter Vessel-Pool (E2E, Sync, Migration von Legacy-Yachts) mit
LogbookVesselSelection und LogbookVesselPicker. Profil mit Accordion
(Flotte & Crew); Demo und Onboarding-Tour inkl. profile_vessel_pool.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-01 21:25:08 +02:00
co-authored by Cursor
parent 182ea497d8
commit ec11dd8d2b
39 changed files with 2107 additions and 113 deletions
+54
View File
@@ -0,0 +1,54 @@
export interface VesselData {
name: string
vesselType?: string
lengthM?: number
draftM?: number
airDraftM?: number
homePort?: string
charterCompany?: string
owner?: string
registrationNumber?: string
callSign?: string
atis?: string
mmsi?: string
sails?: string[]
photo?: string | null
freshwaterCapacityL?: number
fuelCapacityL?: number
greywaterCapacityL?: number
}
export interface VesselSnapshot extends VesselData {
id: string
}
export interface LogbookVesselSelectionData {
activeVesselId: string | null
/** Denormalized for collaborators / offline without account pool */
vesselSnapshot: VesselSnapshot | null
}
export const MAX_POOL_VESSELS = 20
export function emptyLogbookVesselSelection(): LogbookVesselSelectionData {
return {
activeVesselId: null,
vesselSnapshot: null
}
}
export function emptyVesselData(): VesselData {
return {
name: '',
vesselType: '',
homePort: '',
charterCompany: '',
owner: '',
registrationNumber: '',
callSign: '',
atis: '',
mmsi: '',
sails: [],
photo: null
}
}