""" Options: Date: 2024-11-21 11:33:54 Version: 8.23 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://api.bokamera.se #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: MessageTemplatesQuery.* #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 class ICompany: company_id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class BaseModel: pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class MessageType(BaseModel): # @Required() name: Optional[str] = None # @Required() description: Optional[str] = None # @Required() max_characters: int = 0 # @Required() default_text: Optional[str] = None # @Required() send_method_id: int = 0 modified_date: Optional[datetime.datetime] = None id: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class MessageTypeQueryResponse: # @ApiMember(Description="The message type id") id: int = 0 """ The message type id """ # @ApiMember(Description="The message type name.") name: Optional[str] = None """ The message type name. """ # @ApiMember(Description="The message type description.") description: Optional[str] = None """ The message type description. """ # @ApiMember(Description="The maximum number of charachters that can be entered into message body using this type.") max_characters: int = 0 """ The maximum number of charachters that can be entered into message body using this type. """ # @ApiMember(Description="The default text that is always included when sending messages of this type.") default_text: Optional[str] = None """ The default text that is always included when sending messages of this type. """ # @ApiMember(Description="The send method for this type. 1 = Email, 2 = SMS.") send_method_id: int = 0 """ The send method for this type. 1 = Email, 2 = SMS. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyMessageTemplateMessageServiceRelation(BaseModel): # @Required() company_id: Optional[str] = None id: int = 0 # @Required() company_message_template_id: int = 0 # @Required() service_id: int = 0 modified_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CompanyMessageTemplate(BaseModel): # @References(typeof(MessageType)) # @Ignore() type: Optional[MessageType] = None message_service_relation: Optional[List[CompanyMessageTemplateMessageServiceRelation]] = None # @Ignore() services: Optional[List[Service]] = None # @Required() company_id: Optional[str] = None id: int = 0 # @Required() type_id: int = 0 # @Required() name: Optional[str] = None # @Required() sender: Optional[str] = None title: Optional[str] = None # @Required() body: Optional[str] = None # @Required() default: bool = False # @Required() readonly: bool = False # @Required() header_footer_b_g_color: Optional[str] = None modified_date: Optional[datetime.datetime] = None message_template: Optional[str] = None language: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class MessageServices: id: int = 0 # @ApiMember(Description="Name of the service") name: Optional[str] = None """ Name of the service """ # @ApiMember(Description="The image url of the service") image_url: Optional[str] = None """ The image url of the service """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class MessageTemplatesQueryResponse: # @ApiMember(Description="The message template id") id: int = 0 """ The message template id """ # @ApiMember(Description="The message template name.") name: Optional[str] = None """ The message template name. """ # @ApiMember(Description="The message template title.") title: Optional[str] = None """ The message template title. """ # @ApiMember(Description="The message template title.") body: Optional[str] = None """ The message template title. """ # @ApiMember(Description="The message template sender (an email for message types with sendmethod 1, for SMS this cannot be set).") sender: Optional[str] = None """ The message template sender (an email for message types with sendmethod 1, for SMS this cannot be set). """ # @ApiMember(Description="If the message template is the default message currently in use.") default: bool = False """ If the message template is the default message currently in use. """ # @ApiMember(Description="If the message type information.") message_type: Optional[MessageTypeQueryResponse] = None """ If the message type information. """ # @ApiMember(Description="Template language.") language: Optional[str] = None """ Template language. """ # @ApiMember(Description="The connected services which the template is valid for. If empty then it's valid for all services.") services: Optional[List[MessageServices]] = None """ The connected services which the template is valid for. If empty then it's valid for all services. """ # @Route("/messages/templates", "GET") # @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) # @ValidateRequest(Validator="IsAuthenticated") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class MessageTemplatesQuery(QueryDb2[CompanyMessageTemplate, MessageTemplatesQueryResponse], IReturn[QueryResponse[MessageTemplatesQueryResponse]], ICompany): # @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") company_id: Optional[str] = None """ The company id, if empty will use the company id for the user you are logged in with. """ # @ApiMember(Description="The message template id.") id: Optional[int] = None """ The message template id. """ # @ApiMember(Description="The message type id. See GET /messages/templates/types ") type_id: Optional[int] = None """ The message type id. See GET /messages/templates/types """ # @ApiMember(Description="The message send method id.1 = Email and 2 = SMS. See GET /messages/templates/types ") message_type_send_method_id: Optional[int] = None """ The message send method id.1 = Email and 2 = SMS. See GET /messages/templates/types """ # @ApiMember(Description="If you only want to retrieve active message templates (not inactive).") default: Optional[bool] = None """ If you only want to retrieve active message templates (not inactive). """ # @ApiMember(DataType="boolean", Description="If you want to include the message type information", ParameterType="query") include_message_type_information: bool = False """ If you want to include the message type information """ # @ApiMember(DataType="boolean", Description="If you want to include the services that are conencted to this template", ParameterType="query") include_connected_services: bool = False """ If you want to include the services that are conencted to this template """