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()
)