""" Options: Date: 2025-02-05 20:06:28 Version: 5.140 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://api.clubmanagercentral.com #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: WebService.GetHeaderMenuRequest.* #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 # @Flags() class Feature(IntEnum): NONE = 0 STANDARD = 1 BOOKINGS = 2 ROTA = 4 GO_CARDLESS = 8 HOME_SCREEN = 16 E_POS = 32 ATTENDANCE = 64 SALES = 128 PAYMENT_COLLECTIONS = 256 MAIL_CHIMP = 512 MULTI_SITE = 1024 ACCOUNTING_DASHBOARD = 2048 OTHER_DASHBOARDS = 4096 REPORTS = 8192 ADVANCED_ACCOUNTING = 16384 MEMBER_LICENSE_DATES = 32768 FACE_RECOGNITION = 65536 MEMBER_ACCOUNT_CREATION = 131072 AUTOMATION = 262144 FACEBOOK_MARKETING = 524288 GRADES = 1048576 ZOOM_INTEGRATION = 2097152 SALES_TARGET_CHART = 4194304 CUSTOM_APP = 8388608 CUSTOM_ATTRIBUTES_ON_PORTAL = 16777216 NO_EXPORT = 33554432 ENTERPRISE_CLUB_PERFORMANCE_DASHBOARDS = 67108864 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SubHeaderMenuItem: name: Optional[str] = None description: Optional[str] = None url: Optional[str] = None icon: Optional[str] = None roles: Optional[List[str]] = None feature: Optional[Feature] = None hide_for_c_m_go: Optional[bool] = None show_feature_unavailable: bool = False has_icon: bool = False has_font_awesome_icon: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HeaderMenuItem: name: Optional[str] = None url: Optional[str] = None is_current: bool = False feature: Optional[Feature] = None hide_feature: bool = False roles: Optional[List[str]] = None sub_header_menu_items: Optional[List[SubHeaderMenuItem]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HeaderMenu: header: Optional[str] = None header_menu_items: Optional[List[HeaderMenuItem]] = None # @Route("/api/Web/GetHeaderMenu", "POST,GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetHeaderMenuRequest(IReturn[HeaderMenu]): user_id: Optional[int] = None member_id: Optional[int] = None