/* Options: Date: 2026-08-15 01:43:33 Version: 10.09 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://blazor-gallery.servicestack.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: UpdateBooking.* //ExcludeTypes: //DefaultImports: serde::{Deserialize, Serialize},serde_json::Value,std::collections::HashMap */ #![allow( dead_code, non_camel_case_types, non_snake_case, clippy::upper_case_acronyms )] use serde::{Deserialize, Serialize}; use serde_json::Value; use servicestack::*; use std::collections::HashMap; #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] pub enum RoomType { #[default] #[serde(rename = "Single")] Single, #[serde(rename = "Double")] Double, #[serde(rename = "Queen")] Queen, #[serde(rename = "Twin")] Twin, #[serde(rename = "Suite")] Suite, } /// Booking Details #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Booking { #[serde(flatten)] pub audit_base: AuditBase, pub id: i32, pub name: String, #[serde(rename = "roomType")] pub room_type: RoomType, #[serde(rename = "roomNumber")] pub room_number: i32, #[serde(rename = "bookingStartDate")] pub booking_start_date: String, #[serde(rename = "bookingEndDate")] #[serde(default, skip_serializing_if = "Option::is_none")] pub booking_end_date: Option, pub cost: f64, // References(typeof(Coupon)) #[serde(rename = "couponId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub coupon_id: Option, pub discount: Coupon, #[serde(default, skip_serializing_if = "Option::is_none")] pub notes: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub cancelled: Option, } /// Update an existing Booking // Route("/booking/{Id}", "PATCH") // ValidateRequest(Validator="HasRole(`Employee`)") #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct UpdateBooking { pub id: i32, #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, #[serde(rename = "roomType")] #[serde(default, skip_serializing_if = "Option::is_none")] pub room_type: Option, // Validate(Validator="GreaterThan(0)") #[serde(rename = "roomNumber")] #[serde(default, skip_serializing_if = "Option::is_none")] pub room_number: Option, // Validate(Validator="GreaterThan(0)") #[serde(default, skip_serializing_if = "Option::is_none")] pub cost: Option, #[serde(rename = "bookingStartDate")] #[serde(default, skip_serializing_if = "Option::is_none")] pub booking_start_date: Option, #[serde(rename = "bookingEndDate")] #[serde(default, skip_serializing_if = "Option::is_none")] pub booking_end_date: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub notes: Option, #[serde(rename = "couponId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub coupon_id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub cancelled: Option, } impl IRequest for UpdateBooking { const NAME: &'static str = "UpdateBooking"; const VERB: &'static str = "PATCH"; } impl IReturn for UpdateBooking { type Response = IdResponse; }