""" Options: Date: 2025-10-27 22:15:27 Version: 8.80 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://duengageapi.uat.scadsoftware.com #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: SaveCampaignActionClientForm.* #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 CampaignActionFile: name: Optional[str] = None file_type: Optional[str] = None file_size: Optional[str] = None extension: Optional[str] = None upload_url: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Segments: # @Required() id: int = 0 # @Required() # @References(typeof(Tenants)) tenants_id: int = 0 # @Required() name: Optional[str] = None is_custom: Optional[bool] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Customers: # @Required() id: int = 0 # @Required() # @References(typeof(Tenants)) tenants_id: int = 0 # @References(typeof(AppUser)) user_auth_id: Optional[int] = None # @Required() # @References(typeof(Segments)) segments_id: int = 0 # @References(typeof(Companies)) companies_id: Optional[int] = None currencies_id: Optional[int] = None address: Optional[str] = None age: Optional[int] = None city: Optional[str] = None contact_number: Optional[str] = None email: Optional[str] = None ethnic_group: Optional[str] = None first_name: Optional[str] = None gender: Optional[str] = None home_language: Optional[str] = None id_number: Optional[str] = None last_name: Optional[str] = None postal_code: Optional[str] = None region: Optional[str] = None suburb: Optional[str] = None unique_identifier: Optional[str] = None birth_date: Optional[datetime.datetime] = None classifications: Optional[Dict[str, str]] = None country: Optional[str] = None passport_number: Optional[str] = None # @Required() # @References(typeof(StatusCodes)) status_codes_id: int = 0 reason: Optional[str] = None vulnerability_flag: Optional[bool] = None meta: Optional[Dict[str, str]] = None # @Computed() public_access_guid: Optional[str] = None custom_field1: Optional[str] = None custom_field2: Optional[str] = None custom_field3: Optional[str] = None custom_field4: Optional[str] = None custom_field5: Optional[str] = None custom_field6: Optional[str] = None custom_field7: Optional[str] = None custom_field8: Optional[str] = None custom_field9: Optional[str] = None custom_field10: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CampaignActionFormResults: custom_form_results: Optional[str] = None comments: Optional[str] = None campaign_action_files: Optional[List[CampaignActionFile]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CampaignActionsFormResponses: # @Required() id: int = 0 # @Required() # @References(typeof(CampaignActions)) campaign_actions_id: int = 0 # @References(typeof(Customers)) customers_id: Optional[int] = None # @Required() # @Computed() action_timestamp: datetime.datetime = datetime.datetime(1, 1, 1) form_meta_responses: Optional[CampaignActionFormResults] = None form_meta_custom_responses: Optional[Dict[str, str]] = None campaign_instance_comms_id: Optional[int] = None form_meta_files_responses: Optional[List[CampaignActionFile]] = None form_meta_comments: Optional[str] = None status_codes_id: int = 0 sent_to_email_address: Optional[str] = None version_number: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CampaignActions: # @Required() id: int = 0 # @Required() # @References(typeof(Campaigns)) campaigns_id: int = 0 # @References(typeof(Actions)) actions_id: Optional[int] = None button_name: Optional[str] = None # @References(typeof(ActionTypes)) action_types_id: Optional[int] = None description: Optional[str] = None offer_order: Optional[int] = None stand_out: Optional[bool] = None # @Required() public_access_guid: Optional[str] = None form_meta: Optional[List[FormField]] = None files: Optional[List[CampaignActionFile]] = None sent_to_email_address: Optional[str] = None cc_email_address: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SaveCampaignActionClientFormResponse: campaign_actions_form_responses: Optional[CampaignActionsFormResponses] = None response_status: Optional[ResponseStatus] = None # @Route("/campaign/inbox/form", "PUT POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SaveCampaignActionClientForm(IReturn[SaveCampaignActionClientFormResponse]): comms_guid: Optional[str] = None campaign_actions_requests_id: int = 0 comments: Optional[str] = None campaign_action_files: Optional[List[CampaignActionFile]] = None