package model import ( "time" "github.com/google/uuid" ) // Profile is a personal archive (self or other). type Profile struct { ID uuid.UUID `json:"id"` UserID uuid.UUID `json:"user_id"` Relation string `json:"relation"` DisplayName string `json:"display_name"` BirthDate time.Time `json:"birth_date"` BirthTime *string `json:"birth_time,omitempty"` BirthPlace *string `json:"birth_place,omitempty"` Gender *string `json:"gender,omitempty"` RelationType *string `json:"relation_type,omitempty"` GeoLat *float64 `json:"geo_lat,omitempty"` GeoLng *float64 `json:"geo_lng,omitempty"` GeoVisible bool `json:"geo_visible"` CreatedAt time.Time `json:"created_at"` } // SynastryInvite is a shareable pair invite. type SynastryInvite struct { ID uuid.UUID `json:"id"` Token string `json:"token"` HostUserID uuid.UUID `json:"host_user_id"` HostProfileID uuid.UUID `json:"host_profile_id"` ExpiresAt time.Time `json:"expires_at"` GuestUserID *uuid.UUID `json:"guest_user_id,omitempty"` GuestProfileID *uuid.UUID `json:"guest_profile_id,omitempty"` ReportID *uuid.UUID `json:"report_id,omitempty"` CreatedAt time.Time `json:"created_at"` }