package schema import ( "entgo.io/ent" "entgo.io/ent/dialect/entsql" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" "github.com/hay-kot/homebox/backend/ent/schema/mixins" ) // Group holds the schema definition for the Group entity. type Group struct { ent.Schema } func (Group) Mixin() []ent.Mixin { return []ent.Mixin{ mixins.BaseMixin{}, } } // Fields of the Home. func (Group) Fields() []ent.Field { return []ent.Field{ field.String("name"). MaxLen(255). NotEmpty(), field.Enum("currency"). Default("usd"). Values("usd", "eur", "gbp", "jpy"), // TODO: add more currencies } } // Edges of the Home. func (Group) Edges() []ent.Edge { return []ent.Edge{ edge.To("users", User.Type). Annotations(entsql.Annotation{ OnDelete: entsql.Cascade, }), edge.To("locations", Location.Type). Annotations(entsql.Annotation{ OnDelete: entsql.Cascade, }), edge.To("items", Item.Type). Annotations(entsql.Annotation{ OnDelete: entsql.Cascade, }), edge.To("labels", Label.Type). Annotations(entsql.Annotation{ OnDelete: entsql.Cascade, }), edge.To("documents", Document.Type). Annotations(entsql.Annotation{ OnDelete: entsql.Cascade, }), edge.To("invitation_tokens", GroupInvitationToken.Type). Annotations(entsql.Annotation{ OnDelete: entsql.Cascade, }), } }