From 4975a6540661fe52663e7a210af86d28cc77176e Mon Sep 17 00:00:00 2001 From: "Gustavo \"Guz\" L de Mello" Date: Tue, 10 Jun 2025 19:04:13 -0300 Subject: [PATCH] feat(model,token): token model for repository --- model/token.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 model/token.go diff --git a/model/token.go b/model/token.go new file mode 100644 index 0000000..95e9ec3 --- /dev/null +++ b/model/token.go @@ -0,0 +1,34 @@ +package model + +import ( + "time" + + "github.com/google/uuid" +) + +type Token struct { + ID uuid.UUID + UserID uuid.UUID + DateCreated time.Time + DateExpires time.Time +} + +func (t Token) Validate() error { + errs := []error{} + if len(t.ID) == 0 { + errs = append(errs, ErrZeroValue{Name: "ID"}) + } + if len(t.UserID) == 0 { + errs = append(errs, ErrZeroValue{Name: "User"}) + } + if t.DateCreated.IsZero() { + errs = append(errs, ErrZeroValue{Name: "DateCreated"}) + } + if t.DateExpires.IsZero() { + errs = append(errs, ErrZeroValue{Name: "DateExpires"}) + } + if len(errs) > 0 { + return ErrInvalidModel{Name: "Token", Errors: errs} + } + return nil +}