seed vehicle trims catalog
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from datetime import date, datetime
|
||||
from decimal import Decimal
|
||||
|
||||
from sqlalchemy import Date, DateTime, ForeignKey, Numeric, String, UniqueConstraint, func
|
||||
from sqlalchemy import Date, DateTime, ForeignKey, Integer, Numeric, String, UniqueConstraint, func
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
|
||||
from app.db.base import Base
|
||||
@@ -15,6 +15,7 @@ class Car(Base):
|
||||
name: Mapped[str] = mapped_column(String(160))
|
||||
make: Mapped[str | None] = mapped_column(String(80))
|
||||
model: Mapped[str | None] = mapped_column(String(80))
|
||||
trim: Mapped[str | None] = mapped_column(String(120))
|
||||
year: Mapped[int | None]
|
||||
plate_number: Mapped[str | None] = mapped_column(String(32))
|
||||
vin: Mapped[str | None] = mapped_column(String(32))
|
||||
@@ -53,3 +54,23 @@ class CarModel(Base):
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now())
|
||||
|
||||
make = relationship("CarMake", back_populates="models")
|
||||
trims = relationship("CarTrim", back_populates="model", cascade="all, delete-orphan")
|
||||
|
||||
|
||||
class CarTrim(Base):
|
||||
__tablename__ = "car_trims"
|
||||
__table_args__ = (UniqueConstraint("model_id", "name", name="uq_car_trims_model_name"),)
|
||||
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
model_id: Mapped[int] = mapped_column(ForeignKey("car_models.id", ondelete="CASCADE"), index=True)
|
||||
name: Mapped[str] = mapped_column(String(120), index=True)
|
||||
body_type: Mapped[str | None] = mapped_column(String(60))
|
||||
fuel_type: Mapped[str | None] = mapped_column(String(32))
|
||||
transmission: Mapped[str | None] = mapped_column(String(32))
|
||||
drive_type: Mapped[str | None] = mapped_column(String(32))
|
||||
year_from: Mapped[int | None] = mapped_column(Integer)
|
||||
year_to: Mapped[int | None] = mapped_column(Integer)
|
||||
market: Mapped[str | None] = mapped_column(String(80))
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), server_default=func.now())
|
||||
|
||||
model = relationship("CarModel", back_populates="trims")
|
||||
|
||||
Reference in New Issue
Block a user