from us_pls._variables.models import Variables

SYSTEM_DATA_VARIABLES = Variables(
    Identification=Variables(
        STABR="State",
        LIBNAME="Name",
        LibraryIdCode=Variables(
            FSCSKEY="FromIMLS",
            LIBID="FromState",
        ),
    ),
    StreetAddress=Variables(
        ADDRESS="Address", CITY="City", ZIP="ZipCode", ZIP4="ZipCode_4Digit"
    ),
    MailingAggress=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="DidLegalServiceAreaChanceInPastYear",
    STARTDAT="ReportingPeriodStartDate",
    ENDDATE="ReportingPeriodEndDate",
    Population=Variables(
        Of=Variables(
            POPU_LSA="LegalServiceArea",
            F_POPLSA="F_POPLSA",
            POPU_UND="LegalServiceArea_Unduplicated",
        )
    ),
    ServiceOutlets=Variables(
        CountOf=Variables(
            CENTLIB="CentralLibraries",
            F_CENLIB="F_CENLIB",
            BRANLIB="BranchLibraries",
            F_BRLIB="F_BRLIB",
            BKMOB="Bookmobiles",
            F_BKMOB="F_BKMOB",
        )
    ),
    FullTimePaidStaff=Variables(
        CountOf=Variables(
            MASTER="PaidLibrarians_WithMasters",
            F_MASTER="F_MASTER",
            LIBRARIA="Employees_WithTitleLibrarian",
            F_LIBRAR="F_LIBRAR",
            OTHPAID="OtherPaidStaff",
            F_OTHSTF="F_OTHSTF",
        ),
        TOTSTAFF="Total",
        F_TOTSTF="F_TOTSTF",
    ),
    OperatingRevenue=Variables(
        From=Variables(
            LOCGVT="LocalGovernment",
            F_LOCGVT="F_LOCGVT",
            STGVT="StateGovernment",
            F_STGVT="F_STGVT",
            FEDGVT="FederalGovernment",
            F_FEDGVT="F_FEDGVT",
            OTHINCM="OtherSources",
            F_OTHINC="F_OTHINC",
        ),
        TOTINCM="Total",
        F_TOTINC="F_TOTINC",
    ),
    OperatingExpenditures=Variables(
        Staff=Variables(
            SALARIES="Wages",
            F_SALX="F_SALX",
            BENEFIT="EmployeeBenefits",
            F_BENX="F_BENX",
            STAFFEXP="Total",
            F_TOSTFX="F_TOSTFX",
        ),
        Collection=Variables(
            PRMATEXP="PrintMaterials",
            F_PRMATX="F_PRMATX",
            ELMATEXP="ElectronicMaterials",
            F_ELMATX="F_ELMATX",
            OTHMATEX="OtherMaterials",
            F_OTMATX="F_OTMATX",
            TOTEXPCO="Total",
            F_TOCOLX="F_TOCOLX",
        ),
        OTHOPEXP="Other",
        F_OTHOPX="F_OTHOPX",
        TOTOPEXP="Total",
        F_TOTOPX="F_TOTOPX",
    ),
    CapitalRevenue=Variables(
        From=Variables(
            LCAP_REV="LocalGovernment",
            F_LCAPRV="F_LCAPRV",
            SCAP_REV="StateGovernment",
            F_SCAPRV="F_SCAPRV",
            FCAP_REV="FederalGovernment",
            F_FCAPRV="F_FCAPRV",
            OCAP_REV="Other",
            F_OCAPRV="F_OCAPRV",
            CAP_REV="Total",
            F_TCAPRV="F_TCAPRV",
        )
    ),
    CapitalExpenditures=Variables(
        CAPITAL="Total",
        F_TCAPX="F_TCAPX",
    ),
    LibraryCollection=Variables(
        CountOf=Variables(
            BKVOL="PrintMaterials",
            F_BKVOL="F_BKVOL",
            EBOOK="ElectronicMaterials",
            F_EBOOK="F_EBOOK",
            AUDIO_PH="AudioMaterials_Physical",
            F_AUD_PH="F_AUD_PH",
            AUDIO_DL="AudioMaterials_Downloadable",
            F_AUD_DL="F_AUD_DL",
            VIDEO_PH="VideoMaterials_Physical",
            F_VID_PH="F_VID_PH",
            VIDEO_DL="VideoMaterials_Downloadable",
            F_VID_DL="F_VID_DL",
        )
    ),
    ElectronicCollection=Variables(
        From=Variables(
            EC_LO_OT="LocalOrOther",
            F_EC_L_O="F_EC_L_O",
            EC_ST="State",
            F_EC_ST="F_EC_ST",
        ),
        ELECCOLL="Total",
        F_ELECOL="F_ELECOL",
    ),
    PrintSerialSubscriptions=Variables(SUBSCRIP="Total", F_PRSUB="F_PRSUB"),
    PublicServiceHours=Variables(HRS_OPEN="Total_PerYear", F_HRS_OP="F_HRS_OP"),
    LibraryServices=Variables(
        CountOf=Variables(
            VISITS="Visits",
            F_VISITS="F_VISITS",
            REFERENC="ReferenceTransactions",
            F_REFER="F_REFER",
            REGBOR="RegisteredUsers",
            F_REGBOR="F_REGBOR",
        )
    ),
    Circulation=Variables(
        CountOf=Variables(
            TOTCIR="Transactions",
            F_TOTCIR="F_TOTCIR",
            KIDCIRCL="OfChildrenMaterials",
            F_KIDCIR="F_KIDCIR",
            ELMATCIR="OfElectronicMaterials",
            F_EMTCIR="F_EMTCIR",
            PHYSCIR="OfPhysicalMaterials",
            F_PHYSCR="F_PHYSCR",
            ELINFO="SuccessfulRetrievalOfElectronicInfo",
            F_ELINFO="F_ELINFO",
            ELCONT="ElectronicContentUse",
            F_ELCONT="F_ELCONT",
        ),
        TOTCOLL="Total",
        F_TOTCOL="F_TOTCOL",
    ),
    InterLibraryLoans=Variables(
        Amount=Variables(
            LOANTO="Given",
            F_LOANTO="F_LOANTO",
            LOANFM="Received",
            F_LOANFM="F_LOANFM",
        )
    ),
    LibraryPrograms=Variables(
        CountOf=Variables(
            KIDPRO="ForChildren",
            F_KIDPRO="F_KIDPRO",
            YAPRO="ForYoungAdults",
            F_YAPRO="F_YAPRO",
        ),
        TOTPRO="Total",
        F_TOTPRO="F_TOTPRO",
        Attendance=Variables(
            TOTATTEN="Total",
            F_TOTATT="F_TOTATT",
            KIDATTEN="ForChildren",
            F_KIDATT="F_KIDATT",
            YAATTEN="ForYoungAdults",
            F_YAATT="F_YAATT",
        ),
    ),
    OtherElectronicInformation=Variables(
        CountOf=Variables(
            GPTERMS="ComputersUsedByPublic",
            F_GPTERM="F_GPTERM",
            PITUSR="UsagesOfComputers",
            F_PITUSR="F_PITUSR",
            WIFISESS="WiFiUses",
            F_WIFISS="F_WIFISS",
            WEBVISIT="VisitsToLibraryWebsite",
        )
    ),
    Other=Variables(
        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",
    ),
)
