feat: shipping warehouse and cost
This commit is contained in:
@@ -7,4 +7,6 @@ from .service import *
|
||||
from .product import *
|
||||
from .secondary import *
|
||||
from .barcode import *
|
||||
from .shipping_warehouse import *
|
||||
|
||||
configure_mappers()
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
from sqlalchemy.orm import declarative_base
|
||||
from sqlalchemy.ext.asyncio import AsyncAttrs
|
||||
from sqlalchemy.orm import declarative_base, DeclarativeBase
|
||||
|
||||
BaseModel = declarative_base()
|
||||
metadata = BaseModel.metadata
|
||||
|
||||
class BaseModel(DeclarativeBase, AsyncAttrs):
|
||||
pass
|
||||
|
||||
|
||||
metadata = BaseModel.metadata
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
from enum import IntEnum, unique
|
||||
|
||||
from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Boolean
|
||||
from sqlalchemy.orm import relationship, backref
|
||||
from sqlalchemy.orm import relationship, backref, Mapped, mapped_column
|
||||
|
||||
from models.base import BaseModel
|
||||
from .shipping_warehouse import ShippingWarehouse
|
||||
|
||||
|
||||
@unique
|
||||
@@ -32,6 +33,9 @@ class Deal(BaseModel):
|
||||
is_deleted = Column(Boolean, nullable=False, server_default='0', default=False, comment='Удалена')
|
||||
is_completed = Column(Boolean, nullable=False, server_default='0', default=False, comment='Завершена')
|
||||
|
||||
shipping_warehouse_id: Mapped[int] = mapped_column(ForeignKey('shipping_warehouses.id'), nullable=True)
|
||||
shipping_warehouse: Mapped["ShippingWarehouse"] = relationship()
|
||||
|
||||
services = relationship('DealService', back_populates='deal', cascade="all, delete-orphan")
|
||||
|
||||
products = relationship('DealProduct', back_populates='deal', cascade="all, delete-orphan")
|
||||
|
||||
@@ -13,12 +13,22 @@ class Service(BaseModel):
|
||||
category_id = Column(Integer, ForeignKey('service_categories.id'), nullable=False, comment='ID категории услуги')
|
||||
category = relationship('ServiceCategory', lazy='joined')
|
||||
|
||||
price = Column(Double, nullable=False, comment='Стоимость услуги')
|
||||
price = Column(
|
||||
Double,
|
||||
nullable=False,
|
||||
comment='Стоимость услуги'
|
||||
)
|
||||
cost = Column(
|
||||
Double,
|
||||
nullable=False,
|
||||
server_default='0',
|
||||
comment='Себестоимость услуги'
|
||||
)
|
||||
|
||||
service_type = Column(Integer,
|
||||
server_default=f'{enums.service.ServiceType.DEAL_SERVICE}',
|
||||
nullable=False,
|
||||
comment='Тип услуги')
|
||||
|
||||
price_ranges = relationship('ServicePriceRange',
|
||||
back_populates='service',
|
||||
lazy='selectin',
|
||||
|
||||
9
models/shipping_warehouse.py
Normal file
9
models/shipping_warehouse.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from models import BaseModel
|
||||
|
||||
|
||||
class ShippingWarehouse(BaseModel):
|
||||
__tablename__ = 'shipping_warehouses'
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
name: Mapped[str] = mapped_column(nullable=False)
|
||||
Reference in New Issue
Block a user