from datetime import datetime from sqlalchemy import DateTime, ForeignKey, Integer, String, Text, func from sqlalchemy.orm import Mapped, mapped_column, relationship from app.db.base import Base class Correction(Base): __tablename__ = "corrections" id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) spot_id: Mapped[int] = mapped_column(Integer, ForeignKey("spots.id"), nullable=False) user_id: Mapped[int] = mapped_column(Integer, ForeignKey("users.id"), nullable=False) field_name: Mapped[str] = mapped_column(String(50), nullable=False) suggested_value: Mapped[str] = mapped_column(Text, nullable=False) reason: Mapped[str | None] = mapped_column(Text, nullable=True) status: Mapped[str] = mapped_column(String(20), default="pending") created_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), server_default=func.now() ) user = relationship("User", lazy="joined") spot = relationship("Spot", lazy="joined") def __repr__(self) -> str: return f""