""" Options: Date: 2025-12-06 08:52:58 Version: 8.0 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://cochraneplus-api-dev.happen.zone #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: DebriefReviewListRequest.* #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 DateFilterType(IntEnum): ALL = 0 BEFORE = 1 AFTER = 2 RANGE = 3 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DateFilter: filter_type: Optional[DateFilterType] = None dates: Optional[List[datetime.datetime]] = None class DebriefReadStatusType(IntEnum): ALL = 0 UNREAD = 1 READ = 2 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ApiSkipTakePagedServiceRequest(ISkipTakePagedServiceRequest): skip: int = 0 take: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ApiSkipTakePagedTableRequest(ApiSkipTakePagedServiceRequest, IOrderKey): request_number: int = 0 search_query: Optional[str] = None order_key: Optional[str] = None order_ascending: bool = False class ISkipTakePagedServiceRequest: skip: int = 0 take: int = 0 class IOrderKey: order_key: Optional[str] = None order_ascending: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class EnumOption: value: int = 0 label: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DebriefReviewListItem: id: int = 0 submitted_by: Optional[str] = None company_name: Optional[str] = None meeting_subject: Optional[str] = None date_submitted: Optional[str] = None overall_score: Optional[str] = None general_manager_id: int = 0 general_manager_reviewed: bool = False general_manager_rating: int = 0 senior_manager_id: int = 0 senior_manager_reviewed: bool = False senior_manager_rating: int = 0 divisional_manager_id: int = 0 divisional_manager_reviewed: bool = False divisional_manager_rating: int = 0 department_manager_id: int = 0 department_manager_reviewed: bool = False department_manager_rating: int = 0 manager_id: int = 0 manager_reviewed: bool = False manager_rating: int = 0 campaign_manager_id: int = 0 campaign_manager_reviewed: bool = False campaign_manager_rating: int = 0 portfolio_manager_id: int = 0 portfolio_manager_reviewed: bool = False portfolio_manager_rating: int = 0 age: Decimal = decimal.Decimal(0) age_colour: Optional[str] = None marked_as_read: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ApiServiceResponse(IServiceResponse): description: Optional[str] = None heading: Optional[str] = None was_successful: bool = False model_state: Optional[Object] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SkipTakePagedServiceResponse(ApiServiceResponse, ISkipTakePagedServiceResponse, ISkipTakePagedServiceRequest): total: int = 0 skip: int = 0 take: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ApiSkipTakePagedTableResponse(SkipTakePagedServiceResponse): request_number: int = 0 T = TypeVar('T') @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SkipTakePagedTableListResponse(Generic[T], ApiSkipTakePagedTableResponse): list_items: Optional[List[T]] = None class ISkipTakePagedServiceResponse: total: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DebriefReviewListResponse(SkipTakePagedTableListResponse[DebriefReviewListItem]): read_statuses: Optional[List[EnumOption]] = None # @Route("/debriefreview/list", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class DebriefReviewListRequest(ApiSkipTakePagedTableRequest, IReturn[DebriefReviewListResponse]): all: bool = False date_captured: Optional[DateFilter] = None read_status: Optional[DebriefReadStatusType] = None