package training import ( "encoding/json" "github.com/google/uuid" ) type TrainingID uuid.UUID func NewTrainingID() TrainingID { return TrainingID(uuid.Must(uuid.NewV7())) } func (id TrainingID) String() string { return uuid.UUID(id).String() } func (id TrainingID) MarshalJSON() ([]byte, error) { return json.Marshal(uuid.UUID(id)) } func (id *TrainingID) UnmarshalJSON(data []byte) error { var u uuid.UUID if err := json.Unmarshal(data, &u); err != nil { return err } *id = TrainingID(u) return nil } type Training struct { ID TrainingID Name string Days int32 }