package schema import ( "entgo.io/ent" "entgo.io/ent/dialect" "entgo.io/ent/schema/edge" "entgo.io/ent/schema/field" "entgo.io/ent/schema/index" "github.com/openmeterio/openmeter/pkg/datetime" "github.com/openmeterio/openmeter/pkg/framework/entutils" ) type UsageReset struct { ent.Schema } func (UsageReset) Mixin() []ent.Mixin { return []ent.Mixin{ entutils.IDMixin{}, entutils.NamespaceMixin{}, entutils.AnnotationsMixin{}, entutils.TimeMixin{}, } } func (UsageReset) Fields() []ent.Field { return []ent.Field{ field.String("entitlement_id").Immutable().SchemaType(map[string]string{ dialect.Postgres: "char(26)", }), field.Time("reset_time").Immutable(), field.Time("anchor").Immutable(), field.String("usage_period_interval").GoType(datetime.ISODurationString("")).Immutable(), } } func (UsageReset) Indexes() []ent.Index { return []ent.Index{ index.Fields("namespace", "entitlement_id"), index.Fields("namespace", "entitlement_id", "reset_time"), } } func (UsageReset) Edges() []ent.Edge { return []ent.Edge{ edge.From("entitlement", Entitlement.Type). Ref("usage_reset"). Field("entitlement_id"). Required(). Unique(). Immutable(), } }