db/specs/models/calendar/event.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
}