61 lines
1.9 KiB
Rust
61 lines
1.9 KiB
Rust
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<OurDB>) {
|
|
// 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::<Calendar>()
|
|
.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::<Calendar>()
|
|
.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()
|
|
);
|
|
}
|