// Package identity owns the durable sign-up facts handoff, not KYC decisions. package identity import ( "time" "git.sendico.io/tech/sxchnge/shared/database/record" "go.mongodb.org/mongo-driver/v2/bson" ) // Facts is a snapshot of local sign-up assertions. It never contains credentials. type Facts struct { FullName string `bson:"fullName"` Email string `bson:"email"` CustomerRef string `bson:"customerRef"` } type Receipt struct { SubmissionRef string `bson:"submissionRef"` SubjectRef string `bson:"subjectRef"` AcceptedAt time.Time `bson:"acceptedAt"` } // Binding uses the local customer ID as its primary key. Namespace is an opaque // adapter configuration fingerprint; no platform tenancy enters the customer model. type Binding struct { storable.Base `bson:",inline"` Namespace string `bson:"namespace"` RegistrationRequest string `bson:"registrationRequest"` Facts Facts `bson:"facts"` Registering bool `bson:"registering"` RegisteringAt time.Time `bson:"registeringAt"` SubjectRef string `bson:"subjectRef"` Receipt *Receipt `bson:"receipt,omitempty"` } func (*Binding) Collection() string { return "signup_facts" } func sourceRef(id bson.ObjectID) string { return "sxchnge:signup:" + id.Hex() }