/* Options: Date: 2026-09-01 21:49: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: UpdateCoupon.* //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; /// Discount Coupons #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Coupon { pub id: String, pub description: String, pub discount: i32, #[serde(rename = "expiryDate")] pub expiry_date: String, } // Route("/coupons/{Id}", "PATCH") // ValidateRequest(Validator="HasRole(`Employee`)") #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct UpdateCoupon { pub id: String, // Validate(Validator="NotEmpty") pub description: String, // Validate(Validator="GreaterThan(0)") pub discount: i32, // Required #[serde(rename = "expiryDate")] pub expiry_date: String, } impl IRequest for UpdateCoupon { const NAME: &'static str = "UpdateCoupon"; const VERB: &'static str = "PATCH"; } impl IReturn for UpdateCoupon { type Response = IdResponse; }