lavkach3

Форк
0
57 строк · 1.3 Кб
1
from datetime import datetime
2
from typing import Optional, List
3

4
from fastapi_filter.contrib.sqlalchemy import Filter
5
from pydantic.types import UUID4
6

7
from app.inventory.quant.models import Lot
8
from core.schemas import BaseFilter
9
from core.schemas.basic_schemes import BasicModel
10
from core.schemas.list_schema import GenericListSchema
11
from core.schemas.timestamps import TimeStampScheme
12

13

14
class LotBaseScheme(BasicModel):
15
    vars: Optional[dict] = None
16
    expiration_datetime: Optional[datetime] = None
17
    product_id: UUID4
18
    external_number: Optional[str] = None
19
    partner_id: Optional[UUID4] = None
20

21
    class Config:
22
        extra = 'allow'
23
        from_attributes = True
24
        orm_model = Lot
25
        service = 'app.inventory.quant.services.LotService'
26

27

28

29
class LotUpdateScheme(LotBaseScheme):
30
    pass
31

32

33
class LotCreateScheme(LotBaseScheme):
34
    company_id: UUID4
35

36

37
class LotScheme(LotCreateScheme, TimeStampScheme):
38
    lsn: int
39
    id: UUID4
40

41
    class Config:
42
        from_attributes = True
43

44

45
class LotFilter(BaseFilter):
46
    class Config:
47
        populate_by_name = True
48

49
    class Constants(Filter.Constants):
50
        model = Lot
51
        ordering_field_name = "order_by"
52
        search_field_name = "search"
53
        search_model_fields = ["external_number"]
54

55

56
class LotListSchema(GenericListSchema):
57
    data: Optional[List[LotScheme]]
58

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.