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 }