package schema import ( "time" "entgo.io/ent" "entgo.io/ent/schema/field" "entgo.io/ent/schema/index" ) // AuditLog holds the schema definition for the AuditLog entity. type AuditLog struct { ent.Schema } // Fields of the AuditLog. func (AuditLog) Fields() []ent.Field { return []ent.Field{ field.String("id"). Unique(). Immutable(), field.String("actor_id"). NotEmpty(). Comment("ID of the user/actor performing the action"), field.String("action"). NotEmpty(). Comment("Action performed (e.g., create, update, delete)"), field.String("target_id"). Optional(). Comment("ID of the target resource"), field.JSON("metadata", map[string]interface{}{}). Optional(). Comment("Additional metadata as JSON"), field.Time("timestamp"). Default(time.Now). Immutable(), } } // Indexes of the AuditLog. func (AuditLog) Indexes() []ent.Index { return []ent.Index{ index.Fields("actor_id"), index.Fields("target_id"), index.Fields("timestamp"), index.Fields("action"), } }