use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct Resource {
pub id: String,
pub name: String,
pub resource_type: String, pub capacity: Option<u32>,
pub timezone: String,
pub working_hours: Option<WorkingHours>,
pub tags: Vec<String>,
pub metadata: Value,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct WorkingHours {
pub monday: Option<(String, String)>, pub tuesday: Option<(String, String)>,
pub wednesday: Option<(String, String)>,
pub thursday: Option<(String, String)>,
pub friday: Option<(String, String)>,
pub saturday: Option<(String, String)>,
pub sunday: Option<(String, String)>,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct Booking {
pub id: String,
pub resource_id: String,
pub title: String,
pub start: String, pub end: String,
pub status: String, pub booked_by: String,
pub attendees: Vec<String>,
pub recurrence: Option<String>, pub notes: Option<String>,
pub metadata: Value,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct Shift {
pub id: String,
pub resource_id: String,
pub role: String,
pub start: String,
pub end: String,
pub status: String, pub break_minutes: u32,
pub notes: Option<String>,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct TimeOff {
pub id: String,
pub resource_id: String,
pub start_date: String,
pub end_date: String,
pub reason: String, pub status: String, }