/ ent / schema / token.go
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  }