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

51 lines
2.2 KiB
Python

from datetime import datetime, timezone
from decimal import Decimal
from sqlalchemy import String, DateTime, DECIMAL, Integer, ForeignKey
from sqlalchemy.orm import Mapped, mapped_column
from app.core.database import Base
class VehicleStock(Base):
__tablename__ = "vehicle_stock"
id: Mapped[int] = mapped_column(Integer, primary_key=True)
plate: Mapped[str] = mapped_column(String(10), nullable=False, index=True)
brand: Mapped[str | None] = mapped_column(String(50))
model: Mapped[str | None] = mapped_column(String(100))
version: Mapped[str | None] = mapped_column(String(200))
registration_date: Mapped[str | None] = mapped_column(String(20))
mileage: Mapped[int | None] = mapped_column(Integer)
location: Mapped[str | None] = mapped_column(String(100))
import_batch: Mapped[str | None] = mapped_column(String(100))
imported_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
)
class RepairCostAvg(Base):
__tablename__ = "repair_costs_avg"
id: Mapped[int] = mapped_column(Integer, primary_key=True)
model: Mapped[str] = mapped_column(String(100), nullable=False, index=True)
avg_cost: Mapped[Decimal | None] = mapped_column(DECIMAL(10, 2))
import_batch: Mapped[str | None] = mapped_column(String(100))
imported_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
)
class VehicleSalesAvg(Base):
__tablename__ = "vehicle_sales_avg"
id: Mapped[int] = mapped_column(Integer, primary_key=True)
model: Mapped[str] = mapped_column(String(100), nullable=False, index=True)
avg_stock_days: Mapped[Decimal | None] = mapped_column(DECIMAL(6, 1))
avg_repair_cost: Mapped[Decimal | None] = mapped_column(DECIMAL(10, 2))
avg_margin_eur: Mapped[Decimal | None] = mapped_column(DECIMAL(10, 2))
avg_margin_pct: Mapped[Decimal | None] = mapped_column(DECIMAL(5, 2))
avg_sale_price: Mapped[Decimal | None] = mapped_column(DECIMAL(10, 2))
import_batch: Mapped[str | None] = mapped_column(String(100))
imported_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), default=lambda: datetime.now(timezone.utc)
)