diff --git a/pkg/training/model.go b/pkg/training/model.go index 79ada5e..5870b2f 100644 --- a/pkg/training/model.go +++ b/pkg/training/model.go @@ -1,6 +1,10 @@ package training -import "github.com/google/uuid" +import ( + "encoding/json" + + "github.com/google/uuid" +) type TrainingID uuid.UUID @@ -8,6 +12,23 @@ 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