40 lines
1.3 KiB
Go
40 lines
1.3 KiB
Go
// 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() }
|