from datetime import datetime from sqlalchemy import DateTime, Float, Integer, String from sqlalchemy.orm import Mapped, mapped_column from app.database.db import Base class Violation(Base): __tablename__ = "violations" id: Mapped[int] = mapped_column(Integer, primary_key=True) image_path: Mapped[str] = mapped_column(String) annotated_image_path: Mapped[str] = mapped_column(String) violation_type: Mapped[str] = mapped_column(String, index=True) severity: Mapped[str] = mapped_column(String, default="MEDIUM") confidence: Mapped[float] = mapped_column(Float, default=0.0) vehicle_type: Mapped[str] = mapped_column(String, default="unknown") license_plate: Mapped[str | None] = mapped_column(String, nullable=True) location: Mapped[str | None] = mapped_column(String, nullable=True) status: Mapped[str] = mapped_column(String, default="pending") timestamp: Mapped[datetime] = mapped_column(DateTime, default=datetime.utcnow)