package schema import ( "entgo.io/ent" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" "time" ) // Role holds the schema definition for the Role entity. type Role struct { ent.Schema } // Fields of the Role. func (Role) Fields() []ent.Field { return []ent.Field{ field.String("name"). Unique(). NotEmpty(). Comment("Role name, e.g., 'admin', 'editor'"), field.String("description"). Optional(). Comment("Human readable description of the role"), field.Time("created_at"). Default(time.Now). Immutable(), field.Time("updated_at"). Default(time.Now). UpdateDefault(time.Now), } } // Edges of the Role. func (Role) Edges() []ent.Edge { return []ent.Edge{ edge.To("permissions", Permission.Type), edge.From("users", User.Type). Ref("roles"), } }