package schema import ( "time" "entgo.io/ent" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" "github.com/google/uuid" ) // LienObjetEmplacement represente un lien entre un objet et un emplacement. type LienObjetEmplacement struct { ent.Schema } // Fields de l'entite LienObjetEmplacement. func (LienObjetEmplacement) Fields() []ent.Field { return []ent.Field{ field.UUID("id", uuid.UUID{}). Default(uuid.New). Comment("Identifiant unique du lien"), field.UUID("objet_id", uuid.UUID{}). Comment("Identifiant de l'objet"), field.UUID("emplacement_id", uuid.UUID{}). Comment("Identifiant de l'emplacement"), field.Enum("type"). Values("stocke", "utilise_dans"). Default("stocke"). Comment("Type de relation"), field.Time("created_at"). Default(time.Now). Comment("Date de creation"), field.Time("updated_at"). Default(time.Now). UpdateDefault(time.Now). Comment("Date de derniere mise a jour"), } } // Edges de l'entite LienObjetEmplacement. func (LienObjetEmplacement) Edges() []ent.Edge { return []ent.Edge{ edge.From("objet", Objet.Type). Ref("liens_emplacements"). Unique(). Field("objet_id"), edge.From("emplacement", Emplacement.Type). Ref("liens_objets"). Unique(). Field("emplacement_id"), } }