| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package schema
- import (
- "time"
- "github.com/Wei-Shaw/sub2api/ent/schema/mixins"
- "entgo.io/ent"
- "entgo.io/ent/dialect"
- "entgo.io/ent/dialect/entsql"
- "entgo.io/ent/schema"
- "entgo.io/ent/schema/edge"
- "entgo.io/ent/schema/field"
- "entgo.io/ent/schema/index"
- )
- // IdentityAdoptionDecision stores the one-time profile adoption choice captured during a pending auth flow.
- type IdentityAdoptionDecision struct {
- ent.Schema
- }
- func (IdentityAdoptionDecision) Annotations() []schema.Annotation {
- return []schema.Annotation{
- entsql.Annotation{Table: "identity_adoption_decisions"},
- }
- }
- func (IdentityAdoptionDecision) Mixin() []ent.Mixin {
- return []ent.Mixin{
- mixins.TimeMixin{},
- }
- }
- func (IdentityAdoptionDecision) Fields() []ent.Field {
- return []ent.Field{
- field.Int64("pending_auth_session_id"),
- field.Int64("identity_id").
- Optional().
- Nillable(),
- field.Bool("adopt_display_name").
- Default(false),
- field.Bool("adopt_avatar").
- Default(false),
- field.Time("decided_at").
- Immutable().
- Default(time.Now).
- SchemaType(map[string]string{dialect.Postgres: "timestamptz"}),
- }
- }
- func (IdentityAdoptionDecision) Edges() []ent.Edge {
- return []ent.Edge{
- edge.From("pending_auth_session", PendingAuthSession.Type).
- Ref("adoption_decision").
- Field("pending_auth_session_id").
- Required().
- Unique(),
- edge.From("identity", AuthIdentity.Type).
- Ref("adoption_decisions").
- Field("identity_id").
- Unique(),
- }
- }
- func (IdentityAdoptionDecision) Indexes() []ent.Index {
- return []ent.Index{
- index.Fields("pending_auth_session_id").Unique(),
- index.Fields("identity_id"),
- }
- }
|