diff --git a/src-tauri/src/models.rs b/src-tauri/src/models.rs index 29cb8fe..ce763e5 100644 --- a/src-tauri/src/models.rs +++ b/src-tauri/src/models.rs @@ -135,6 +135,28 @@ pub struct CalendarEvent { pub organizer: Option, pub starts_at: Option, pub ends_at: Option, + pub description: Option, + /// The source's own stable id (e.g. an iCalendar UID) — used to dedup + /// re-imports of the same event rather than creating duplicate rows. + pub raw_uid: Option, +} + +/// A parsed attendee before persistence — no DB row/id exists until storage +/// upserts it (T6.1/T6.2, FR-CAL-1). +#[derive(Debug, Clone)] +pub struct AttendeeInfo { + pub name: String, + pub email: Option, + pub role: Option, // organizer|required|optional +} + +/// An imported event with the attendees pulled from the same source record — +/// PST/ICS both list attendees inline per-appointment, so there's no +/// separate "fetch attendees for event X" round trip against the source. +#[derive(Debug, Clone)] +pub struct ImportedEvent { + pub event: CalendarEvent, + pub attendees: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)]