token.go
1 package schema 2 3 import ( 4 "regexp" 5 "time" 6 7 "github.com/go-playground/validator/v10" 8 9 "entgo.io/ent" 10 "entgo.io/ent/schema/edge" 11 "entgo.io/ent/schema/field" 12 "github.com/google/uuid" 13 ) 14 15 // Token holds the schema definition for the Token entity. 16 type Token struct { 17 ent.Schema 18 } 19 20 // Fields of the Token. 21 func (Token) Fields() []ent.Field { 22 validate := validator.New() 23 24 return []ent.Field{ 25 field.UUID("id", uuid.UUID{}). 26 Default(uuid.New), 27 // StorageKey("oid"), 28 field.String("type"). 29 Default("qat"). 30 Match(regexp.MustCompile("^(qat|jwt)$")), 31 field.String("name"). 32 Validate(func(s string) error { 33 return validate.Var(s, "required,alphanum,max=32") 34 }), 35 field.String("token"). 36 Unique(). 37 Sensitive(), 38 field.Time("created_at"). 39 Default(time.Now), 40 field.Time("updated_at"). 41 Default(time.Now). 42 UpdateDefault(time.Now), 43 field.Time("deleted_at"). 44 Default(nil). 45 Optional(). 46 Nillable(), 47 } 48 } 49 50 // Edges of the Token. 51 func (Token) Edges() []ent.Edge { 52 return []ent.Edge{ 53 edge.From("owner", User.Type). 54 Ref("tokens"). 55 Unique(), 56 } 57 }