Source code for ridbpy.models.facilities

"""
Facility / Campground Data Models
"""

import datetime
import logging
from typing import TYPE_CHECKING, List, Optional

from sqlmodel import Field, Relationship

from ridbpy.models._base import RidbPyModel

if TYPE_CHECKING is True:
    from ridbpy.models import Campsites, RecAreas

logging.basicConfig(level=logging.DEBUG)


[docs]class FacilityAddresses(RidbPyModel, table=True): """ Addresses for Facilities """ __tablename__ = "FacilityAddresses" FacilityAddressID: str = Field(primary_key=True, index=True) FacilityID: int = Field( foreign_key="Facilities.FacilityID", default=None, index=True ) FacilityAddressType: str FacilityStreetAddress1: Optional[str] FacilityStreetAddress2: Optional[str] FacilityStreetAddress3: Optional[str] City: Optional[str] AddressStateCode: Optional[str] PostalCode: Optional[str] AddressCountryCode: Optional[str] LastUpdatedDate: datetime.date facility: "Facilities" = Relationship(back_populates="addresses")
[docs]class Facilities(RidbPyModel, table=True): """ Facility Information """ __tablename__ = "Facilities" FacilityID: str = Field(primary_key=True, index=True) LegacyFacilityID: Optional[str] OrgFacilityID: int = Field(foreign_key="Organizations.OrgID") ParentOrgID: Optional[str] ParentRecAreaID: Optional[str] = Field( foreign_key="RecAreas.RecAreaID", default=None, index=True ) FacilityName: Optional[str] = Field(index=True) FacilityDescription: Optional[str] FacilityTypeDescription: Optional[str] FacilityUseFeeDescription: Optional[str] FacilityDirections: Optional[str] FacilityPhone: Optional[str] FacilityEmail: Optional[str] FacilityReservationURL: Optional[str] FacilityMapURL: Optional[str] FacilityAdaAccess: Optional[str] FacilityLongitude: float FacilityLatitude: float Keywords: Optional[str] StayLimit: Optional[str] Reservable: bool Enabled: bool LastUpdatedDate: datetime.date campsites: List["Campsites"] = Relationship(back_populates="facility") recreation_area: "RecAreas" = Relationship(back_populates="facilities") addresses: List["FacilityAddresses"] = Relationship(back_populates="facility")