from us_pls._variables.models import Variables

SYSTEM_DATA_VARIABLES = Variables(
    STABR="State",
    LIBNAME="Name",
    LibraryIdCode=Variables(
        FSCSKEY="FromIMLS",
        LIBID="FromState",
    ),
    StreetAddress=Variables(
        ADDRESS="Address", CITY="City", ZIP="ZipCode", ZIP4="ZipCode_4Digit"
    ),
    MailingAddress=Variables(
        ADDRES_M="Address",
        CITY_M="City",
        ZIP_M="ZipCode",
        ZIP4_M="ZipCode_4Digit",
        CNTY="County",
        PHONE="PhoneNumber",
    ),
    C_RELATN="InterlibraryRelationshipCode",
    C_LEGBAS="LegalBasisCode",
    C_ADMIN="AdministrativeStructureCode",
    C_FSCS="MeetsDefinitionOfPublicLibrary",
    GEOCODE="TypeOfRegionServed",
    LSABOUND="DidLegalServiceAreaChangeInPastYear",
    Population=Variables(
        Of=Variables(
            POPU_LSA="LegalServiceArea",
            F_POPLSA="LegalServiceArea_ImputationFlag",
            POPU_UND="LegalServiceArea_Unduplicated",
        )
    ),
    ServiceOutlets=Variables(
        CountOf=Variables(
            CENTLIB="CentralLibraries",
            F_CENLIB="CentralLibraries_ImputationFlag",
            BRANLIB="BranchLibraries",
            F_BRLIB="BranchLibraries_ImputationFlag",
            BKMOB="Bookmobiles",
            F_BKMOB="Bookmobiles_ImputationFlag",
        )
    ),
    FullTimePaidStaff=Variables(
        CountOf=Variables(
            MASTER="PaidLibrarians_WithMasters",
            F_MASTER="PaidLibrarians_WithMasters_ImputationFlag",
            LIBRARIA="Employees_WithTitleLibrarian",
            F_LIBRAR="Employees_WithTitleLibrarian_ImputationFlag",
            OTHPAID="OtherPaidStaff",
            F_OTHSTF="OtherPaidStaff_ImputationFlag",
        ),
        TOTSTAFF="Total",
        F_TOTSTF="Total_ImputationFlag",
    ),
    OperatingRevenue=Variables(
        From=Variables(
            LOCGVT="LocalGovernment",
            F_LOCGVT="LocalGovernment_ImputationFlag",
            STGVT="StateGovernment",
            F_STGVT="StateGovernment_ImputationFlag",
            FEDGVT="FederalGovernment",
            F_FEDGVT="FederalGovernment_ImputationFlag",
            OTHINCM="OtherSources",
            F_OTHINC="OtherSources_ImputationFlag",
        ),
        TOTINCM="Total",
        F_TOTINC="Total_ImputationFlag",
    ),
    OperatingExpenditures=Variables(
        On=Variables(
            Staff=Variables(
                SALARIES="Wages",
                F_SALX="Wages_ImputationFlag",
                BENEFIT="EmployeeBenefits",
                F_BENX="EmployeeBenefits_ImputationFlag",
                STAFFEXP="Total",
                F_TOSTFX="Total_ImputationFlag",
            ),
            Collection=Variables(
                PRMATEXP="PrintMaterials",
                F_PRMATX="PrintMaterials_ImputationFlag",
                ELMATEXP="ElectronicMaterials",
                F_ELMATX="ElectronicMaterials_ImputationFlag",
                OTHMATEX="OtherMaterials",
                F_OTMATX="OtherMaterials_ImputationFlag",
                TOTEXPCO="Total",
                F_TOCOLX="Total_ImputationFlag",
            ),
            OTHOPEXP="Other",
            F_OTHOPX="Other_ImputationFlag",
        ),
        TOTOPEXP="Total",
        F_TOTOPX="Total_ImputationFlag",
    ),
    CapitalRevenue=Variables(
        From=Variables(
            LCAP_REV="LocalGovernment",
            F_LCAPRV="Government_ImputationFlag",
            SCAP_REV="StateGovernment",
            F_SCAPRV="StateGovernment_ImputationFlag",
            FCAP_REV="FederalGovernment",
            F_FCAPRV="FederalGovernment_ImputationFlag",
            OCAP_REV="Other",
            F_OCAPRV="Other_ImputationFlag",
        ),
        CAP_REV="Total",
        F_TCAPRV="Total_ImputationFlag",
    ),
    CapitalExpenditures=Variables(
        CAPITAL="Total",
        F_TCAPX="Total_ImputationFlag",
    ),
    LibraryCollection=Variables(
        CountOf=Variables(
            BKVOL="PrintMaterials",
            F_BKVOL="PrintMaterials_ImputationFlag",
            EBOOK="ElectronicMaterials",
            F_EBOOK="ElectronicMaterials_ImputationFlag",
            AUDIO_PH="AudioMaterials_Physical",
            F_AUD_PH="AudioMaterials_Physical_ImputationFlag",
            AUDIO_DL="AudioMaterials_Downloadable",
            F_AUD_DL="AudioMaterials_Downloadable_ImputationFlag",
            VIDEO_PH="VideoMaterials_Physical",
            F_VID_PH="VideoMaterials_Physical_ImputationFlag",
            VIDEO_DL="VideoMaterials_Downloadable",
            F_VID_DL="VideoMaterials_Downloadable_ImputationFlag",
        )
    ),
    ElectronicCollection=Variables(
        From=Variables(
            EC_LO_OT="LocalOrOther",
            F_EC_L_O="LocalOrOther_ImputationFlag",
            EC_ST="State",
            F_EC_ST="State_ImputationFlag",
        ),
        ELECCOLL="Total",
        F_ELECOL="Total_ImputationFlag",
    ),
    PrintSerialSubscriptions=Variables(
        SUBSCRIP="Total", F_PRSUB="Total_ImputationFlag"
    ),
    PublicServiceHours=Variables(
        HRS_OPEN="Total_PerYear", F_HRS_OP="Total_PerYear_ImputationFlag"
    ),
    LibraryServices=Variables(
        CountOf=Variables(
            VISITS="Visits",
            F_VISITS="Visits_ImputationFlag",
            REFERENC="ReferenceTransactions",
            F_REFER="ReferenceTransactions_ImputationFlag",
            REGBOR="RegisteredUsers",
            F_REGBOR="RegisteredUsers_ImputationFlag",
        )
    ),
    Circulation=Variables(
        CountOf=Variables(
            KIDCIRCL="ChildrenMaterials",
            F_KIDCIR="ChildrenMaterials_ImputationFlag",
            ELMATCIR="ElectronicMaterials",
            F_EMTCIR="ElectronicMaterials_ImputationFlag",
            PHYSCIR="PhysicalMaterials",
            F_PHYSCR="PhysicalMaterials_ImputationFlag",
            ELINFO="SuccessfulRetrievalOfElectronicInfo",
            F_ELINFO="SuccessfulRetrievalOfElectronicInfo_ImputationFlag",
            ELCONT="ElectronicContentUse",
            F_ELCONT="ElectronicContentUse_ImputationFlag",
        ),
        Total=Variables(
            TOTCIR="Transactions",
            F_TOTCIR="Transactions_ImputationFlag",
            TOTCOLL="CountOf_PhysicalAndElectronicCirculation_And_ElectronicSuccessfulRetrieval",
            F_TOTCOL="CountOf_PhysicalAndElectronicCirculation_And_ElectronicSuccessfulRetrieval_ImputationFlag",
        ),
    ),
    InterLibraryLoans=Variables(
        Amount=Variables(
            LOANTO="Given",
            F_LOANTO="Given_ImputationFlag",
            LOANFM="Received",
            F_LOANFM="Received_ImputationFlag",
        )
    ),
    LibraryPrograms=Variables(
        CountOf=Variables(
            For=Variables(
                KIDPRO="Children",
                F_KIDPRO="Children_ImputationFlag",
                YAPRO="YoungAdults",
                F_YAPRO="YoungAdults_ImputationFlag",
            ),
            TOTPRO="Total",
            F_TOTPRO="Total_ImputationFlag",
        ),
        Attendance=Variables(
            TOTATTEN="Total",
            F_TOTATT="Total_ImputationFlag",
            For=Variables(
                KIDATTEN="Children",
                F_KIDATT="Children_ImputationFlag",
                YAATTEN="YoungAdults",
                F_YAATT="YoungAdults_ImputationFlag",
            ),
        ),
    ),
    OtherElectronicInformation=Variables(
        CountOf=Variables(
            GPTERMS="ComputersUsedByPublic",
            F_GPTERM="ComputersUsedByPublic_ImputationFlag",
            PITUSR="UsagesOfComputers",
            F_PITUSR="UsagesOfComputers_ImputationFlag",
            WIFISESS="WiFiUses",
            F_WIFISS="WiFiUses_ImputationFlag",
            WEBVISIT="VisitsToLibraryWebsite",
        )
    ),
    ReportingPeriod=Variables(
        STARTDAT="StartDate",
        ENDDATE="EndDate",
    ),
    YR_SUB="SubmissionYearOfPublicLibraryData",
    OBEREG="BureauOfEconomicAnalysisCode",
    RSTATUS="ReportingStatus",
    STATSTRU="StructureChangeCode",
    STATNAME="NameChangeCode",
    STATADDR="AddressChangeCode",
    LONGITUD="Longitute",
    LATITUDE="Latitude",
    INCITSST="InternationalCommitteeForInfoTechStandardsStateCode_2Digit",
    INCITSCO="InternationalCommitteeForInfoTechStandardsStateCode_3Digit",
    GNISPLAC="GeographicNamesInformationSystemFeatureId",
    CNTYPOP="CountyPopulation",
    CateorizationOfLocale=Variables(
        LOCALE_ADD="CategorizationBySizeAndProximityToCities",
        LOCALE_MOD="CategorizationByModalLocaleCodeOfAssociatedStationaryOutlets",
        REAPLOCALE_ADD="CategorizationBySizeAndProximityToCities_FromRuralEducationAchievementProgram",
        REAPLOCALE_MOD="CategorizationByModalLocaleCodeOfAssociatedStationaryOutlets_FromRuralEducationAchievementProgram",
    ),
    CENTRACT="CensusTract",
    CENBLOCK="CensusBlock",
    CDCODE="CongressionalDistrict",
    CBSA="CoreBasedStatisticalArea",
    MICROF="MetropolitanAndMicropolitcanStatisticalAreaFlag",
    GEOMATCH="Geocoding_AccuraryAndPrecision",
)
