...
This commit is contained in:
58
specs/models_heroledger/main/user.v
Normal file
58
specs/models_heroledger/main/user.v
Normal file
@@ -0,0 +1,58 @@
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user