""" Options: Date: 2026-10-08 22:15:08 Version: 6.21 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://cert.cendyn.com/CenResServiceR2Test #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: HotelRate.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RateType: hotel_code: Optional[str] = None rate_code: Optional[str] = None rate_category: Optional[str] = None rate_name: Optional[str] = None start_date: Optional[datetime.datetime] = None end_date: Optional[datetime.datetime] = None rate_status: Optional[str] = None base_rate_code: Optional[str] = None market_code: Optional[str] = None confidential: Optional[bool] = None meals_included: Optional[bool] = None tax_included_indicator: Optional[str] = None rate_category_description: Optional[str] = None display_text: Optional[str] = None short_description: Optional[str] = None long_description: Optional[str] = None min_l_o_s: Optional[int] = None source_name: Optional[str] = None source_i_d: Optional[str] = None rate_adjust_direction: Optional[str] = None rate_adjust_amount: Optional[Decimal] = None rate_adjust_percent: Optional[Decimal] = None currency_code: Optional[str] = None is_daily: bool = False is_active: bool = False inactive_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RateChargeDetail: charge_code: Optional[str] = None is_base_rate: bool = False rate_before_tax: Optional[Decimal] = None rate_after_tax: Optional[Decimal] = None unit_count: int = 0 tax_amount: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RateGuestCountDetail: guest_count: int = 0 min_rate: Optional[Decimal] = None max_rate: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Rate: hotel_code: Optional[str] = None rate_code: Optional[str] = None room_code: Optional[str] = None start_date: datetime.datetime = datetime.datetime(1, 1, 1) end_date: datetime.datetime = datetime.datetime(1, 1, 1) rate1: Optional[Decimal] = None rate2: Optional[Decimal] = None rate3: Optional[Decimal] = None rate4: Optional[Decimal] = None extra_adult: Optional[Decimal] = None extra_child: Optional[Decimal] = None extra_bed: Optional[Decimal] = None currency_code: Optional[str] = None free_child_limit: Optional[int] = None include_monday: Optional[bool] = None include_tuesday: Optional[bool] = None include_wednesday: Optional[bool] = None include_thursday: Optional[bool] = None include_friday: Optional[bool] = None include_saturday: Optional[bool] = None include_sunday: Optional[bool] = None customer_segment: Optional[str] = None source_name: Optional[str] = None source_i_d: Optional[str] = None is_active: bool = False inactive_date: Optional[datetime.datetime] = None rate_set_i_d: Optional[str] = None rate_charge_details: Optional[List[RateChargeDetail]] = None rate_guest_count_details: Optional[List[RateGuestCountDetail]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RateContainer: echo_token: Optional[str] = None rate_type: Optional[RateType] = None change_action: Optional[str] = None rates: Optional[List[Rate]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Response: status_code: Optional[str] = None record_count: int = 0 error_count: int = 0 # @Route("/hotelrate/{SubscriptionId}/{CendynPropertyId}", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HotelRate(IReturn[Response]): rate_container: Optional[RateContainer] = None subscription_id: Optional[str] = None cendyn_property_id: Optional[str] = None