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" ) // Document holds the schema definition for the Document entity. type Document struct { ent.Schema } func (Document) Mixin() []ent.Mixin { return []ent.Mixin{ mixins.BaseMixin{}, } } // Fields of the Document. func (Document) Fields() []ent.Field { return []ent.Field{ field.String("title"). MaxLen(255). NotEmpty(), field.String("path"). MaxLen(500). NotEmpty(), } } // Edges of the Document. func (Document) Edges() []ent.Edge { return []ent.Edge{ edge.From("group", Group.Type). Ref("documents"). Required(). Unique(), edge.To("document_tokens", DocumentToken.Type). Annotations(entsql.Annotation{ OnDelete: entsql.Cascade, }), edge.To("attachments", Attachment.Type). Annotations(entsql.Annotation{ OnDelete: entsql.Cascade, }), } }