from enum import IntEnum, Enum CRM_PIPELINE_NAME = 'Operations - Social Housing' class HubspotProcessStatus(IntEnum): def __new__(cls, value, label): obj = int.__new__(cls, value) obj._value_ = value obj.label = label return obj # the numerical values of this enum aren't important, but they define the order of operations # This is the first stage, where a survey is ready to go READY_TO_BE_SCHEDULED = 1, "READY TO BE SCHEDULED" # The property didn't get access and needs sign off SURVEYED_NO_ACCESS_NEEDS_SIGN_OFF = 2, "NO ACCESS - NEED SIGN OFF" # The survey has been completed. We don't have any update as to whether the property has been installed SURVEYED_COMPLETED_SIGNED_OFF = 3, "SURVEYED - AUTOMATED SIGNED OFF" # The property turned out to be ineligibile NOT_VIABLE = 4, "NOT VIABLE" # The property is with the installer. This will likely be the default for historic programmes SUBMITTED_TO_INSTALLER = 5, "SUBMITTED TO INSTALLER" # The property has been installed INSTALL_COMPLETE = 6, "INSTALL COMPLETE" # The install has complete and lodgement is complete LODGEMENT_COMPLETE = 7, "LODGEMENT COMPLETE" # The property has been cancelled INSTALLER_CANCELLED_FINALIZED = 8, "INSTALLER CANCELLED - FINALIZED" class Installer(Enum): SCIS = "SCIS" JJ_CRUMP = "J & J CRUMP" SGEC = "SGEC" WARMFRONT = "WARM FRONT" @classmethod def is_valid_value(cls, value): """ Check if the value is a valid installer. """ return value in cls._value2member_map_ CRM_UPLOAD_COLUMNS = [ 'Name ', 'Associations: Listing', 'Company Domain Name ', 'Email ', 'First Name ', 'Last Name ', 'Phone ', 'Secondary Phone ', 'Secondary Contact Full Name ', 'Listing Owner Email ', 'Full Address ', 'Address 1 ', 'Address 2 ', 'Postcode ', 'Property Type ', 'Property Sub Type ', 'Bedroom(s) ', 'Domna Property ID ', 'National UPRN ', 'Owner Property ID ', 'Wall Construction ', 'Heating System ', 'Year Built ', 'Boiler Make ', 'Boiler Model ', 'Non-Intrusives: Date Checked ', 'Non-Intrusives: Wall Type ', 'Non-intrusives: Insulation ', 'Non-intrusives: Insulation Material ', 'Non-Intrusives: CIGA Check Required ', 'Non-Intrusives: PV Access Issues ', 'Non-Intrusives: Roof Orientation ', 'Non-Intrusives: Surveyor Notes ', 'Non-Intrusives: Surveyor Name ', 'CIGA: Date Requested ', 'CIGA: Cavity Guarantee Found ', 'Last EPC: Is Estimated ', 'Last EPC: EPC Rating ', 'Last EPC: SAP Rating ', 'Last EPC: Main Heating Description ', 'Last EPC: Heating Controls ', 'Last EPC: Lodgement Date ', 'Last EPC: Floor Area ', 'Last EPC: Wall ', 'Last EPC: Roof ', 'Last EPC: Floor ', 'Last EPC: Room Height ', 'Last EPC: Age Band ', 'Deal Stage ', 'Pipeline ', 'Expected Commencement Date ', 'Deal Name ', 'Project Code ', 'Postcode ', 'Product ID ', 'Name ', 'Unit price ', 'Quantity ', 'Deal Owner', 'Amount ', 'Installer ' ]