...
This commit is contained in:
		
							
								
								
									
										15
									
								
								specs/models_older/circle/attachment.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								specs/models_older/circle/attachment.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
 | 
			
		||||
module circle
 | 
			
		||||
 | 
			
		||||
// Attachment represents an attachment usable for any object
 | 
			
		||||
// such as email, chat, etc.
 | 
			
		||||
// It is a generic struct that can be used for any object
 | 
			
		||||
// that requires an attachment.
 | 
			
		||||
 | 
			
		||||
pub struct Attachment {
 | 
			
		||||
pub mut:
 | 
			
		||||
	filename     string
 | 
			
		||||
	content_type string
 | 
			
		||||
	hash         string // Hash of the attachment data
 | 
			
		||||
	size         u32    // Size in bytes
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								specs/models_older/circle/config.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								specs/models_older/circle/config.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
module mcc
 | 
			
		||||
import base
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//there is only 1 of this per circle called "configs"
 | 
			
		||||
pub struct Configs {
 | 
			
		||||
	base.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	configs  map[string]Config //string is namefixed
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//generic config per circle, can be more than 1
 | 
			
		||||
pub struct Config {
 | 
			
		||||
	base.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	name string
 | 
			
		||||
	labels  []Label
 | 
			
		||||
	colors []Color
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub struct Label {
 | 
			
		||||
	base.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	name  string
 | 
			
		||||
	comment string
 | 
			
		||||
	color u16
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
pub struct Color {
 | 
			
		||||
	base.Base	
 | 
			
		||||
pub mut:
 | 
			
		||||
	id    u16
 | 
			
		||||
	name  string
 | 
			
		||||
	comment string
 | 
			
		||||
	colorcode string //hex color code
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										36
									
								
								specs/models_older/circle/domainnames.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								specs/models_older/circle/domainnames.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
module circle
 | 
			
		||||
 | 
			
		||||
import base
 | 
			
		||||
 | 
			
		||||
// Define the RecordType enum
 | 
			
		||||
pub enum RecordType {
 | 
			
		||||
	a
 | 
			
		||||
	aaa
 | 
			
		||||
	cname
 | 
			
		||||
	mx
 | 
			
		||||
	ns
 | 
			
		||||
	ptr
 | 
			
		||||
	soa
 | 
			
		||||
	srv
 | 
			
		||||
	txt
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Define the DomainNamespace struct, represents a full domain with all its records
 | 
			
		||||
pub struct DomainNameSpace {
 | 
			
		||||
	base.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	id          u32
 | 
			
		||||
	domain      string
 | 
			
		||||
	description string
 | 
			
		||||
	records     []Record
 | 
			
		||||
	admins      []u32 // IDs of the admins they need to exist as user in the circle
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Define the Record struct
 | 
			
		||||
pub struct Record {
 | 
			
		||||
pub mut:
 | 
			
		||||
	name     string
 | 
			
		||||
	text     string
 | 
			
		||||
	category RecordType
 | 
			
		||||
	addr     []string
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								specs/models_older/circle/group.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								specs/models_older/circle/group.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
module circle
 | 
			
		||||
 | 
			
		||||
import base
 | 
			
		||||
 | 
			
		||||
// there is one group called "everyone" which is the default group for all members and their roles
 | 
			
		||||
pub struct Group {
 | 
			
		||||
	base.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	name        string // name of the group in a circle, the one "everyone" is the default group
 | 
			
		||||
	description string // optional description
 | 
			
		||||
	members     []u32  // pointers to the members of this group
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								specs/models_older/circle/user.v
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								specs/models_older/circle/user.v
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
module circle
 | 
			
		||||
 | 
			
		||||
import freeflowuniverse.herolib.data.ourtime
 | 
			
		||||
import base
 | 
			
		||||
 | 
			
		||||
// Role represents the role of a member in a circle
 | 
			
		||||
pub enum Role {
 | 
			
		||||
	admin
 | 
			
		||||
	stakeholder
 | 
			
		||||
	member
 | 
			
		||||
	contributor
 | 
			
		||||
	guest
 | 
			
		||||
	external // means no right in this circle appart from we register this user
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UserPreferences represents user preferences for MCC
 | 
			
		||||
pub struct UserPreferences {
 | 
			
		||||
pub mut:
 | 
			
		||||
	default_calendar_id u32    // Default calendar ID
 | 
			
		||||
	default_view        string // Default view (day, week, month)
 | 
			
		||||
	email_signature     string // Default email signature
 | 
			
		||||
	theme               string // UI theme preference
 | 
			
		||||
	notifications       bool   // Enable/disable notifications
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// User represents a member of a circle
 | 
			
		||||
pub struct User {
 | 
			
		||||
	base.Base
 | 
			
		||||
pub mut:
 | 
			
		||||
	name        string // name of the member as used in this circle
 | 
			
		||||
	description string // optional description which is relevant to this circle
 | 
			
		||||
	role        Role   // role of the member in the circle
 | 
			
		||||
	contact_ids []u32  // IDs of contacts linked to this member
 | 
			
		||||
	wallet_ids  []u32  // IDs of wallets owned by this member which are relevant to this circle
 | 
			
		||||
	pubkey      string // public key of the member as used in this circle
 | 
			
		||||
	
 | 
			
		||||
	// Additional fields needed for MCC functionality
 | 
			
		||||
	email       string // Primary email address
 | 
			
		||||
	timezone    string // User's preferred timezone
 | 
			
		||||
	preferences UserPreferences // User preferences for MCC
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user