31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
from typing import Optional
|
|
|
|
from api.v1.common.base_models import TenantScopedMixin, TimestampMixin
|
|
from core.database import Base
|
|
from sqlalchemy import (
|
|
Index,
|
|
Integer,
|
|
PrimaryKeyConstraint,
|
|
String,
|
|
)
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
|
|
|
|
class ManifestDriver(Base, TenantScopedMixin, TimestampMixin):
|
|
__tablename__ = "manifest_drivers"
|
|
__table_args__ = (
|
|
PrimaryKeyConstraint("manifest_number", "driver_name", name="manifest_drivers_pkey"),
|
|
Index("idx_manifest_drivers_manifest_number", "manifest_number"),
|
|
{"schema": "a76"},
|
|
)
|
|
|
|
manifest_number: Mapped[str] = mapped_column(String(15))
|
|
driver_name: Mapped[str] = mapped_column(String(80))
|
|
driver_type: Mapped[Optional[str]] = mapped_column(String(1), nullable=True)
|
|
address_1: Mapped[Optional[str]] = mapped_column(String(100), nullable=True)
|
|
address_2: Mapped[Optional[str]] = mapped_column(String(100), nullable=True)
|
|
city: Mapped[Optional[str]] = mapped_column(String(30), nullable=True)
|
|
state: Mapped[Optional[str]] = mapped_column(String(30), nullable=True)
|
|
postal_code: Mapped[Optional[str]] = mapped_column(String(15), nullable=True)
|
|
country: Mapped[Optional[str]] = mapped_column(String(3), nullable=True)
|