From cd170c2907fc90121c3bccbb89a0fb2b8f4b7076 Mon Sep 17 00:00:00 2001 From: iamdoubz <> Date: Wed, 1 Jul 2026 15:07:36 -0500 Subject: [PATCH] Add CalendarEvent, AttendeeInfo, ImportedEvent types for calendar import (T6.1) --- src-tauri/src/models.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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)]