from ..cw_model import CWModel


class Project(CWModel):

    def __init__(self, json_dict=None):
        self.id = None  # (Integer)
        self._info = None  # (Metadata)
        self.actualEnd = None  # (String)
        self.actualHours = None  # (Number)
        self.actualStart = None  # (String)
        self.agreement = None  # (AgreementReference)
        self.billExpenses = None  # (Enum)
        self.billingAmount = None  # (Number)
        self.billingAttention = None  # (String(50))
        self.billingMethod = None  # *(Enum)
        self.billingRateType = None  # (Enum)
        self.billingTerms = None  # (BillingTermsReference)
        self.billProducts = None  # (Enum)
        self.billProjectAfterClosedFlag = None  # (Boolean)
        self.billTime = None  # (Enum)
        self.billToCompany = None  # (CompanyReference)
        self.billToContact = None  # (ContactReference)
        self.billToSite = None  # (SiteReference)
        self.billUnapprovedTimeAndExpense = None  # (Boolean)
        self.board = None  # *(ProjectBoardReference)
        self.budgetAnalysis = None  # (Enum)
        self.budgetFlag = None  # (Boolean)
        self.budgetHours = None  # (Number)
        self.businessUnitId = None  # (Integer)
        self.company = None  # *(CompanyReference)
        self.contact = None  # (ContactReference)
        self.customerPO = None  # (String(50))
        self.description = None  # (String)
        self.downpayment = None  # (Number)
        self.estimatedEnd = None  # *(String)
        self.estimatedExpenseRevenue = None  # (Number)
        self.estimatedHours = None  # (Number)
        self.estimatedProductRevenue = None  # (Number)
        self.estimatedStart = None  # *(String)
        self.estimatedTimeRevenue = None  # (Number)
        self.expenseApprover = None  # (MemberReference)
        self.includeDependenciesFlag = None  # (Boolean)
        self.includeEstimatesFlag = None  # (Boolean)
        self.locationId = None  # (Integer)
        self.manager = None  # (MemberReference)
        self.name = None  # *(String(100))
        self.opportunity = None  # (OpportunityReference)
        self.projectTemplateId = None  # (Integer)
        self.restrictDownPaymentFlag = None  # (Boolean)
        self.scheduledEnd = None  # (String)
        self.scheduledHours = None  # (Number)
        self.scheduledStart = None  # (String)
        self.shipToCompany = None  # (CompanyReference)
        self.shipToContact = None  # (ContactReference)
        self.shipToSite = None  # (SiteReference)
        self.site = None  # (SiteReference)
        self.status = None  # (ProjectStatusReference)
        self.timeApprover = None  # (MemberReference)
        self.type = None  # (ProjectTypeReference)

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