Newer
Older
vmk-360-data_collector / src / vmk_data_collector / models / property_snapshot.py
@Eugene Sukhodolskiy Eugene Sukhodolskiy 1 day ago 712 bytes feat: core pipeline + FastAPI API (Phases 0-6)
from datetime import datetime

from sqlalchemy import JSON, TIMESTAMP, ForeignKey, Integer, func
from sqlalchemy.orm import Mapped, mapped_column

from vmk_data_collector.db.base import Base


class PropertySnapshot(Base):
    __tablename__ = "property_snapshots"

    id: Mapped[int] = mapped_column(Integer, primary_key=True)
    property_id: Mapped[int] = mapped_column(
        ForeignKey("property_listings.id", ondelete="CASCADE"), nullable=False
    )
    snapshot_data: Mapped[dict] = mapped_column(JSON, default=dict)
    changed_fields: Mapped[dict] = mapped_column(JSON, default=dict)
    created_at: Mapped[datetime] = mapped_column(
        TIMESTAMP(timezone=True), server_default=func.now()
    )