template-monorepo/internal/model/member/domain/entity/member.go

45 lines
2.3 KiB
Go
Raw Permalink Normal View History

2026-05-20 23:51:22 +00:00
package entity
import (
"gateway/internal/model/member/domain/enum"
"go.mongodb.org/mongo-driver/v2/bson"
)
// Member is the tenant-scoped member profile document.
type Member struct {
ID bson.ObjectID `bson:"_id,omitempty"`
TenantID string `bson:"tenant_id"`
UID string `bson:"uid"`
ZitadelUserID string `bson:"zitadel_user_id,omitempty"`
ZitadelEmail string `bson:"zitadel_email,omitempty"`
DisplayName string `bson:"display_name,omitempty"`
Avatar string `bson:"avatar,omitempty"`
Phone string `bson:"phone,omitempty"`
Language string `bson:"language,omitempty"`
Currency string `bson:"currency,omitempty"`
Status enum.MemberStatus `bson:"member_status"`
Origin enum.MemberOrigin `bson:"origin"`
PasswordHash string `bson:"password_hash,omitempty"`
BusinessEmail string `bson:"business_email,omitempty"`
BusinessEmailVerified bool `bson:"business_email_verified"`
BusinessEmailVerifiedAt int64 `bson:"business_email_verified_at,omitempty"`
BusinessPhone string `bson:"business_phone,omitempty"`
BusinessPhoneVerified bool `bson:"business_phone_verified"`
BusinessPhoneVerifiedAt int64 `bson:"business_phone_verified_at,omitempty"`
TOTPEnrolled bool `bson:"totp_enrolled"`
TOTPSecretCipher []byte `bson:"totp_secret_cipher,omitempty"`
TOTPEnrolledAt int64 `bson:"totp_enrolled_at,omitempty"`
TOTPBackupCodesHash []string `bson:"totp_backup_codes_hash,omitempty"`
SuspendReason string `bson:"suspend_reason,omitempty"`
CreateAt int64 `bson:"create_at"`
UpdateAt int64 `bson:"update_at"`
DeletedAt int64 `bson:"deleted_at,omitempty"`
AnonymizedAt int64 `bson:"anonymized_at,omitempty"`
}
// CollectionName returns the MongoDB collection for members.
func (Member) CollectionName() string {
return "members"
}