43 lines
1.3 KiB
V
43 lines
1.3 KiB
V
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
|
|
}
|
|
|