from ..cw_model import CWModel


class AgreementType(CWModel):

    def __init__(self, json_dict=None):
        self.id = None  # (Integer)
        self.name = None  # *(String(50))
        self.prefixSuffixOption = None  # *(Enum)
        self.defaultFlag = None  # (Boolean)
        self.inactiveFlag = None  # (Boolean)
        self.prePaymentFlag = None  # (Boolean)
        self.invoicePreSuffix = None  # (String(5))
        self.locationId = None  # (Integer)
        self.businessUnitId = None  # (Integer)
        self.restrictLocationFlag = None  # (Boolean)
        self.restrictDepartmentFlag = None  # (Boolean)
        self.slaId = None  # (Integer)
        self.applicationUnits = None  # (Enum)
        self.applicationLimit = None  # (Number)
        self.applicationCycle = None  # (Enum)
        self.applicationUnlimitedFlag = None  # (Boolean)
        self.oneTimeFlag = None  # (Boolean)
        self.coverAgreementTimeFlag = None  # (Boolean)
        self.coverAgreementProductFlag = None  # (Boolean)
        self.coverAgreementExpenseFlag = None  # (Boolean)
        self.coverSalesTaxFlag = None  # (Boolean)
        self.carryOverUnusedFlag = None  # (Boolean)
        self.allowOverrunsFlag = None  # (Boolean)
        self.expiredDays = None  # (Integer)
        self.limit = None  # (Integer)
        self.expireWhenZero = None  # (Boolean)
        self.chargeToFirmFlag = None  # (Boolean)
        self.employeeCompRate = None  # *(Enum)
        self.employeeCompNotExceed = None  # *(Enum)
        self.compHourlyRate = None  # (Number)
        self.compLimitAmount = None  # (Number)
        self.billCycleId = None  # (Integer)
        self.billOneTimeFlag = None  # (Boolean)
        self.billTermsId = None  # (Integer)
        self.invoicingCycle = None  # *(Enum)
        self.billAmount = None  # (Number)
        self.taxableFlag = None  # (Boolean)
        self.restrictDownPaymentFlag = None  # (Boolean)
        self.invoiceDescription = None  # (String(4000))
        self.topCommentFlag = None  # (Boolean)
        self.bottomCommentFlag = None  # (Boolean)
        self.workRole = None  # (WorkRoleReference)
        self.workType = None  # (WorkTypeReference)
        self.projectTypeId = None  # (Integer)
        self.invoiceTemplateSetupId = None  # (Integer)
        self.billTime = None  # *(Enum)
        self.billExpenses = None  # *(Enum)
        self.billProducts = None  # *(Enum)
        self.billableTimeInvoiceFlag = None  # (Boolean)
        self.billableExpenseInvoiceFlag = None  # (Boolean)
        self.billableProductInvoiceFlag = None  # (Boolean)
        self.copyWorkRolesFlag = None  # (Boolean)
        self.copyWorkTypesFlag = None  # (Boolean)
        self._info = None  # (Metadata)

        # initialize object with json dict
        super().__init__(json_dict)
