Files
plantillas-proyectos/backend/api/v1/modules/a76/manifests/manifest/models.py

53 lines
2.9 KiB
Python

from decimal import Decimal
from typing import Optional
from api.v1.common.base_models import TenantScopedMixin, TimestampMixin
from core.database import Base
from sqlalchemy import (
Index,
Integer,
Numeric,
PrimaryKeyConstraint,
String,
Text,
)
from sqlalchemy.orm import Mapped, mapped_column
class Manifest(Base, TenantScopedMixin, TimestampMixin):
__tablename__ = "manifests"
__table_args__ = (
Index("idx_manifests_manifest_number", "manifest_number"),
{"schema": "a76"},
)
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
manifest_number: Mapped[str] = mapped_column(String(15), nullable=True)
importer_details: Mapped[Optional[str]] = mapped_column(String(60), nullable=True)
person_in_charge: Mapped[Optional[str]] = mapped_column(String(60), nullable=True)
consigned_to: Mapped[Optional[str]] = mapped_column(String(8), nullable=True)
sent_by: Mapped[Optional[str]] = mapped_column(String(8), nullable=True)
foreign_exit_port: Mapped[Optional[str]] = mapped_column(String(6), nullable=True)
foreign_exit_port_loc: Mapped[Optional[str]] = mapped_column(String(4), nullable=True)
destination_port: Mapped[Optional[str]] = mapped_column(String(6), nullable=True)
destination_port_loc: Mapped[Optional[str]] = mapped_column(String(4), nullable=True)
entry_port: Mapped[Optional[str]] = mapped_column(String(6), nullable=True)
entry_port_loc: Mapped[Optional[str]] = mapped_column(String(4), nullable=True)
entry_date: Mapped[Optional[int]] = mapped_column(Integer, nullable=True)
net_weight: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 8), nullable=True)
gross_weight: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 8), nullable=True)
total_value: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 8), nullable=True)
description: Mapped[Optional[str]] = mapped_column(String(2500), nullable=True)
broker_code: Mapped[Optional[str]] = mapped_column(String(5), nullable=True)
carrier_code: Mapped[Optional[str]] = mapped_column(String(5), nullable=True)
payment_invoice_number: Mapped[Optional[str]] = mapped_column(String(5), nullable=True)
seal_number: Mapped[Optional[str]] = mapped_column(String(30), nullable=True)
entry_hour: Mapped[Optional[int]] = mapped_column(Integer, nullable=True)
hazardous_material: Mapped[Optional[str]] = mapped_column(String(2), nullable=True)
transport_mode: Mapped[Optional[str]] = mapped_column(String(2), nullable=True)
transport_code: Mapped[Optional[str]] = mapped_column(String(14), nullable=True)
trailer_number: Mapped[Optional[str]] = mapped_column(String(20), nullable=True)
status: Mapped[Optional[str]] = mapped_column(String(14), nullable=True)
status_description: Mapped[Optional[str]] = mapped_column(String(1000), nullable=True)
manifest_type: Mapped[Optional[str]] = mapped_column(String(3), nullable=True)