use chrono::Utc; use heromodels::db::hero::OurDB; use heromodels::db::{Collection, Db}; use heromodels::models::calendar::{Calendar, Event}; use heromodels_core::Model; use std::sync::Arc; /// Seed the mock database with calendar data pub fn seed_calendar_data(db: Arc) { // Create a calendar let calendar = Calendar::new(None, "Work Calendar".to_string()) .description("My work schedule".to_string()); // Store the calendar in the database let (calendar_id, mut saved_calendar) = db .collection::() .expect("Failed to get Calendar collection") .set(&calendar) .expect("Failed to store calendar"); // Create an event let now = Utc::now().timestamp(); let end_time = now + 3600; // Add 1 hour in seconds let event = Event::new() .title("Team Meeting".to_string()) .reschedule(now, end_time) .location("Conference Room A".to_string()) .description("Weekly sync".to_string()) .build(); // Store the event in the database first to get its ID let (event_id, saved_event) = db .collection() .expect("Failed to get Event collection") .set(&event) .expect("Failed to store event"); // Add the event ID to the calendar saved_calendar = saved_calendar.add_event(event_id as i64); // Store the updated calendar in the database let (_calendar_id, final_calendar) = db .collection::() .expect("Failed to get Calendar collection") .set(&saved_calendar) .expect("Failed to store calendar"); println!("Mock database seeded with calendar data:"); println!( " - Added calendar: {} (ID: {})", final_calendar.name, final_calendar.get_id() ); println!( " - Added event: {} (ID: {})", saved_event.title, saved_event.get_id() ); }