Source code for ridbpy.models.recareas

"""
Recreation Area Data Models
"""

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

from sqlmodel import Field, Relationship

from ridbpy.models._base import RidbPyModel
from ridbpy.models.organizations import Organizations

if TYPE_CHECKING is True:
    from ridbpy.models import Facilities

logging.basicConfig(level=logging.DEBUG)


[docs]class RecAreas(RidbPyModel, table=True): """ Recreation Area Data """ __tablename__ = "RecAreas" RecAreaID: str = Field(primary_key=True) OrgRecAreaID: Optional[int] ParentOrgID: int = Field(foreign_key=Organizations.OrgID) RecAreaName: Optional[str] = Field(index=True) RecAreaDescription: Optional[str] RecAreaUseFeeDescription: Optional[str] RecAreaDirections: Optional[str] RecAreaPhone: Optional[str] RecAreaEmail: Optional[str] RecAreaReservationURL: Optional[str] RecAreaMapURL: Optional[str] RecAreaLongitude: Optional[float] RecAreaLatitude: Optional[float] StayLimit: Optional[str] Keywords: Optional[str] Reservable: bool Enabled: bool LastUpdatedDate: datetime.date addresses: List["RecAreaAddresses"] = Relationship(back_populates="recreation_area") facilities: List["Facilities"] = Relationship(back_populates="recreation_area") organization: Organizations = Relationship(back_populates="recreation_areas")
[docs]class RecAreaAddresses(RidbPyModel, table=True): """ Recreation Area Addresses """ __tablename__ = "RecAreaAddresses" RecAreaAddressID: int = Field(primary_key=True) RecAreaID: int = Field(foreign_key="RecAreas.RecAreaID") RecAreaAddressType: str RecAreaStreetAddress1: Optional[str] RecAreaStreetAddress2: Optional[str] RecAreaStreetAddress3: Optional[str] City: Optional[str] PostalCode: Optional[str] AddressStateCode: Optional[str] AddressCountryCode: Optional[str] LastUpdatedDate: datetime.date recreation_area: RecAreas = Relationship(back_populates="addresses")