// User holds the schema definition for the User entity.
type User struct {
ent.Schema
}
// Fields of the User.
func (User) Fields() []ent.Field {
return []ent.Field{
// id of user (UUID v4 or v7)
field.UUID("id", uuid.UUID{}).Unique(),
// subject from OIDC
field.String("sub").Nillable().Unique(),
// email from OIDC
field.String("email"),
// name from OIDC
field.String("name"),
// picture from OIDC
field.String("picture").Nillable(),
field.Time("created_at").Default(time.Now),
field.Time("updated_at").Default(time.Now).UpdateDefault(time.Now),
}
}
// Edges of the User.
func (User) Edges() []ent.Edge {
return []ent.Edge{
edge.To("sessions", Session.Type),
}
}
// Indexes of the User.
func (User) Indexes() []ent.Index {
return []ent.Index{
index.Fields("id"),
index.Fields("sub"),
index.Fields("id", "sub").Unique(),
}
}