58 lines
2.2 KiB
V
58 lines
2.2 KiB
V
module circle
|
|
|
|
import freeflowuniverse.herolib.hero.models.core
|
|
|
|
// Wallet represents a wallet associated with a circle for financial operations
|
|
pub struct User {
|
|
core.Base
|
|
pub mut:
|
|
username string // Unique username for the user @[index]
|
|
pubkey string // Public key for cryptographic operations @[index]
|
|
email []string @[index] // User's email addresses, needs to be considered unique and can be multiple
|
|
status UserStatus // Current user status
|
|
userprofile []SecretBox // User profile information stored in a secret box
|
|
kyc []SecretBox // KYC information stored in a secret box
|
|
}
|
|
|
|
|
|
pub enum UserStatus {
|
|
active
|
|
inactive
|
|
suspended
|
|
archived
|
|
}
|
|
|
|
pub struct UserProfile {
|
|
pub mut:
|
|
user_id u32 // Reference to the user entity @[index]
|
|
full_name string // Full name of the user
|
|
bio string // Short biography or description
|
|
profile_pic string // URL to the user's profile picture
|
|
links map[string]string // Social media or other relevant links
|
|
metadata map[string]string // Additional metadata associated with the user profile
|
|
}
|
|
|
|
pub struct KYCInfo {
|
|
pub mut:
|
|
user_id u32 // Reference to the user entity @[index]
|
|
full_name string // Full name of the user
|
|
date_of_birth u64 // Unix timestamp of user's date of birth
|
|
address string // User's residential address
|
|
phone_number string // User's phone number
|
|
id_number string // Government-issued ID number (e.g., passport, driver's license)
|
|
id_type string // Type of ID (e.g., "passport", "driver's license")
|
|
id_expiry u64 // Unix timestamp of ID expiry date
|
|
kyc_status KYCStatus // Current KYC status
|
|
kyc_verified bool // Whether the KYC information has been verified
|
|
kyc_verified_by u32 // User ID of the person who verified the KYC
|
|
kyc_verified_at u64 // Unix timestamp when KYC was verified
|
|
kyc_rejected_reason string // Reason for KYC rejection, if applicable
|
|
kyc_signature u32 // Signature of the user for KYC verification
|
|
metadata map[string]string // Additional metadata associated with the user profile
|
|
}
|
|
|
|
pub enum KYCStatus {
|
|
pending
|
|
approved
|
|
rejected
|
|
} |