54 lines
1.1 KiB
V
54 lines
1.1 KiB
V
module calendar
|
|
|
|
import freeflowuniverse.herolib.hero.models.core
|
|
|
|
// EventStatus represents the current status of an event
|
|
pub enum EventStatus {
|
|
scheduled
|
|
ongoing
|
|
completed
|
|
cancelled
|
|
postponed
|
|
}
|
|
|
|
// EventType categorizes different types of events
|
|
pub enum EventType {
|
|
meeting
|
|
appointment
|
|
reminder
|
|
task
|
|
call
|
|
conference
|
|
}
|
|
|
|
// Event represents a calendar event
|
|
pub struct Event {
|
|
core.Base
|
|
pub mut:
|
|
calendar_id u32 @[index]
|
|
title string @[index]
|
|
description string
|
|
start_time u64 @[index]
|
|
end_time u64 @[index]
|
|
location string
|
|
status EventStatus
|
|
event_type EventType
|
|
priority u8 // 1-5 scale
|
|
is_all_day bool
|
|
recurrence_rule string // RFC 5545 recurrence rule
|
|
parent_event_id u32 // for recurring events
|
|
}
|
|
|
|
// EventParticipant represents a participant in an event
|
|
pub struct EventParticipant {
|
|
core.Base
|
|
pub mut:
|
|
event_id u32 @[index]
|
|
user_id u32 @[index]
|
|
email string @[index]
|
|
name string
|
|
role string // attendee, organizer, optional
|
|
status string // accepted, declined, tentative, pending
|
|
response_time u64
|
|
}
|