""" Options:
Date: 2025-04-12 23:35:59
Version: 8.23
Tip: To override a DTO option, remove "#" prefix before updating
BaseUrl: https://testapi.bokamera.se

#GlobalNamespace: 
#AddServiceStackTypes: True
#AddResponseStatus: False
#AddImplicitVersion: 
#AddDescriptionAsComments: True
IncludeTypes: CreateVossInvoice.*
#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


# @Route("/voss/invoice", "POST")
# @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CreateVossInvoice:
    # @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="Controls up to which point of time transactions are included in invoice, can be set to any date, if not provided current UTC time will be used instead")
    invoice_date: Optional[datetime.datetime] = None
    """
    Controls up to which point of time transactions are included in invoice, can be set to any date, if not provided current UTC time will be used instead
    """


    # @ApiMember(Description="If present the operation will start only after this date")
    scheduled_start_time: Optional[datetime.datetime] = None
    """
    If present the operation will start only after this date
    """


    # @ApiMember(Description="Optional CRON expression for recurring operations.")
    recurring_schedule: Optional[str] = None
    """
    Optional CRON expression for recurring operations.
    """