""" Options: Date: 2025-12-10 04:26:05 Version: 8.80 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://wh.entersecurity.com #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: QboWebhooksRequest.* #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 QBOEntityName(IntEnum): CUSTOMER = 20 DEPARTMENT = 21 VENDOR = 21 DEPOSIT = 22 INVOICE = 23 BILL = 24 ITEM = 24 JOURNAL_CODE = 25 PURCHASE_ORDER = 25 JOURNAL_ENTRY = 26 ESTIMATE = 26 REFUND_RECEIPT = 26 EMPLOYEE = 27 SALES_RECEIPT = 27 TAX_AGENCY = 28 TERM = 29 TIME_ACTIVITY = 30 ACCOUNT = 30 TRANSFER = 31 VENDOR_CREDIT = 31 CREDIT_MEMO = 32 PURCHASE = 33 CURRENCY = 33 PAYMENT = 35 PAYMENT_METHOD = 36 BILL_PAYMENT = 36 PREFERENCES = 37 BUDGET = 37 CLASS_ = 38 class QBOOperation(str, Enum): UPDATE = 'Update' CREATE = 'Create' MERGE = 'Merge' DELETE = 'Delete' EMAILED = 'Emailed' VOID = 'Void' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QBOEntity: name: Optional[QBOEntityName] = None id: Optional[str] = None operation: Optional[QBOOperation] = None last_updated: datetime.datetime = datetime.datetime(1, 1, 1) deleted_id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QBODataChangeEvent: entities: Optional[List[QBOEntity]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QBOEventNotification: realm_id: Optional[str] = None data_change_event: Optional[QBODataChangeEvent] = None # @Route("/qbowebhook", "POST") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class QboWebhooksRequest(IReturn[str]): event_notifications: Optional[List[QBOEventNotification]] = None