...
This commit is contained in:
		
							
								
								
									
										32
									
								
								specs/models_old/circle/circle.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								specs/models_old/circle/circle.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
module circle
 | 
			
		||||
 | 
			
		||||
import freeflowuniverse.herolib.hero.models.core
 | 
			
		||||
 | 
			
		||||
// Circle represents a circle entity with configuration and metadata
 | 
			
		||||
@[heap]
 | 
			
		||||
pub struct Circle {
 | 
			
		||||
	core.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	name        string       // Human-readable name of the circle
 | 
			
		||||
	description string       // Detailed description of the circle's purpose
 | 
			
		||||
	domain      string       // Primary domain name for the circle @[index]
 | 
			
		||||
	config      CircleConfig // Configuration settings for the circle
 | 
			
		||||
	status      CircleStatus // Current operational status
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CircleConfig holds configuration settings for a circle
 | 
			
		||||
pub struct CircleConfig {
 | 
			
		||||
pub mut:
 | 
			
		||||
	max_members  u32    // Maximum number of members allowed
 | 
			
		||||
	allow_guests bool   // Whether to allow guest access
 | 
			
		||||
	auto_approve bool   // Whether new members are auto-approved
 | 
			
		||||
	theme        string // Visual theme identifier
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// CircleStatus represents the operational status of a circle
 | 
			
		||||
pub enum CircleStatus {
 | 
			
		||||
	active
 | 
			
		||||
	inactive
 | 
			
		||||
	suspended
 | 
			
		||||
	archived
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								specs/models_old/circle/member.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								specs/models_old/circle/member.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
module circle
 | 
			
		||||
 | 
			
		||||
import freeflowuniverse.herolib.hero.models.core
 | 
			
		||||
 | 
			
		||||
// Member represents a member within a circle
 | 
			
		||||
pub struct Member {
 | 
			
		||||
	core.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	circle_id   u32          // Reference to the circle this member belongs to @[index]
 | 
			
		||||
	user_id     u32          // Reference to the user entity @[index]
 | 
			
		||||
	role        MemberRole   // Member's role within the circle
 | 
			
		||||
	status      MemberStatus // Current membership status
 | 
			
		||||
	joined_at   u64          // Unix timestamp when member joined
 | 
			
		||||
	invited_by  u32          // User ID of who invited this member
 | 
			
		||||
	permissions []string     // List of custom permissions
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MemberRole defines the possible roles a member can have
 | 
			
		||||
pub enum MemberRole {
 | 
			
		||||
	owner
 | 
			
		||||
	admin
 | 
			
		||||
	moderator
 | 
			
		||||
	member
 | 
			
		||||
	guest
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MemberStatus represents the current status of membership
 | 
			
		||||
pub enum MemberStatus {
 | 
			
		||||
	active
 | 
			
		||||
	pending
 | 
			
		||||
	suspended
 | 
			
		||||
	removed
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								specs/models_old/circle/name.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								specs/models_old/circle/name.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
module circle
 | 
			
		||||
 | 
			
		||||
import freeflowuniverse.herolib.hero.models.core
 | 
			
		||||
 | 
			
		||||
// Name represents a domain name configuration for a circle
 | 
			
		||||
pub struct Name {
 | 
			
		||||
	core.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	circle_id   u32      // Reference to the circle this name belongs to @[index]
 | 
			
		||||
	domain      string   // The actual domain name @[index]
 | 
			
		||||
	subdomain   string   // Optional subdomain
 | 
			
		||||
	record_type NameType // Type of DNS record
 | 
			
		||||
	value       string   // DNS record value/target
 | 
			
		||||
	priority    u32      // Priority for MX records
 | 
			
		||||
	ttl         u32      // Time to live in seconds
 | 
			
		||||
	is_active   bool     // Whether this record is currently active
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NameType defines the supported DNS record types
 | 
			
		||||
pub enum NameType {
 | 
			
		||||
	a
 | 
			
		||||
	aaaa
 | 
			
		||||
	cname
 | 
			
		||||
	mx
 | 
			
		||||
	txt
 | 
			
		||||
	srv
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								specs/models_old/circle/wallet.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								specs/models_old/circle/wallet.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
module circle
 | 
			
		||||
 | 
			
		||||
import freeflowuniverse.herolib.hero.models.core
 | 
			
		||||
 | 
			
		||||
// Wallet represents a wallet associated with a circle for financial operations
 | 
			
		||||
pub struct Wallet {
 | 
			
		||||
	core.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	circle_id     u32          // Reference to the circle this wallet belongs to @[index]
 | 
			
		||||
	address       string       // Blockchain address for this wallet @[index]
 | 
			
		||||
	type          WalletType   // Type of wallet (custodial/non-custodial)
 | 
			
		||||
	balance       f64          // Current balance in the wallet
 | 
			
		||||
	currency      string       // Currency type (e.g., "USD", "BTC", "ETH")
 | 
			
		||||
	is_primary    bool         // Whether this is the primary wallet for the circle
 | 
			
		||||
	status        WalletStatus // Current wallet status
 | 
			
		||||
	last_activity u64          // Unix timestamp of last transaction
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WalletType defines the types of wallets supported
 | 
			
		||||
pub enum WalletType {
 | 
			
		||||
	custodial
 | 
			
		||||
	non_custodial
 | 
			
		||||
	hardware
 | 
			
		||||
	software
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WalletStatus represents the operational status of a wallet
 | 
			
		||||
pub enum WalletStatus {
 | 
			
		||||
	active
 | 
			
		||||
	inactive
 | 
			
		||||
	frozen
 | 
			
		||||
	archived
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user