Files
GMG-Smart-Quote/backend/app/models/motornet_valuation.py
T

52 lines
2.6 KiB
Python

from datetime import datetime, timezone
from decimal import Decimal
from sqlalchemy import (
String, DateTime, DECIMAL, Integer, Text,
ForeignKey, JSON
)
from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.core.database import Base
class MotornetValuation(Base):
__tablename__ = "motornet_valuations"
id: Mapped[int] = mapped_column(Integer, primary_key=True)
valuation_id: Mapped[int] = mapped_column(Integer, ForeignKey("valuations.id"), nullable=False, index=True)
plate: Mapped[str] = mapped_column(String(10), nullable=False, index=True)
motornet_code: Mapped[str | None] = mapped_column(String(20))
fetched_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
)
registration_year: Mapped[int | None] = mapped_column(Integer)
registration_month: Mapped[int | None] = mapped_column(Integer)
mileage: Mapped[int | None] = mapped_column(Integer)
motornet_id: Mapped[int | None] = mapped_column(Integer)
ediz_dati: Mapped[str | None] = mapped_column(String(20))
brand_name: Mapped[str | None] = mapped_column(String(100))
model_description: Mapped[str | None] = mapped_column(String(200))
allestimento: Mapped[str | None] = mapped_column(String(255))
alimentazione: Mapped[str | None] = mapped_column(String(100))
immagine_url: Mapped[str | None] = mapped_column(String(500))
xml_url: Mapped[str | None] = mapped_column(String(500))
percorrenza_media_km: Mapped[int | None] = mapped_column(Integer)
quotazione_blu: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
quotazione_blu_km: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
quotazione_giallo: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
quotazione_giallo_km: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
quotazione_blu_totale: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
quotazione_giallo_totale: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
variazione_km: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
prezzo_listino: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
prezzo_accessori: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
totale_riparazioni_carrozzeria: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
totale_riparazioni_meccanica: Mapped[Decimal | None] = mapped_column(DECIMAL(12, 2))
raw_response: Mapped[dict | None] = mapped_column(JSON)
valuation: Mapped["Valuation"] = relationship("Valuation", back_populates="motornet_valuations")