lavkach3

Форк
0
/
uom_schemas.py 
69 строк · 2.1 Кб
1
from __future__ import annotations
2

3
from typing import Optional, List
4

5
from fastapi_filter.contrib.sqlalchemy import Filter
6
from pydantic import BaseModel, Field, UUID4
7

8
from app.basic.uom.models.uom_models import Uom
9
from app.basic.uom.models.uom_models import UomType
10
from core.schemas import BaseFilter
11
from core.schemas.basic_schemes import BasicModel
12
from core.schemas.list_schema import GenericListSchema
13
from core.schemas.timestamps import TimeStampScheme
14

15

16
class UomBaseScheme(BasicModel):
17
    title: str = Field(title="Title", table=True)
18
    uom_category_id: UUID4 = Field(title="Uom Category", table=True, description='Select category of UOM Category', model='uom_category')
19
    type: 'UomType' = Field(title="Uom Type", table=True,
20
                            description='Select type \n SMALLER: this category is smaller \n BIGGER... STANDART')
21
    ratio: float = Field(title="Ratio", table=True, description='Ratio')
22
    precision: float = Field(title="Presicion", table=True, description='Rouding Precision')
23

24
    class Config:
25
        extra = 'allow'
26
        from_attributes = True
27
        orm_model = Uom
28
        service = 'app.basic.uom.services.UomService'
29

30

31
class UomUpdateScheme(UomBaseScheme):
32
    ...
33

34

35
class UomCreateScheme(UomBaseScheme):
36
    ...
37

38

39
class UomScheme(UomCreateScheme, TimeStampScheme):
40
    company_id: UUID4
41
    id: UUID4
42
    lsn: int
43

44

45
class UomFilter(BaseFilter):
46
    title__in: Optional[List[str]] = Field(default=None, description="title")
47
    uom_category_id__in: Optional[List[str]] = Field(default=None, description="category_id", model='uom_category')
48
    type__in: Optional[List['UomType']] = Field(default=None, description="type")
49

50
    class Config:
51
        populate_by_name = True
52

53
    class Constants(Filter.Constants):
54
        model = Uom
55
        ordering_field_name = "order_by"
56
        search_field_name = "search"
57
        search_model_fields = ["title", ]
58

59

60
class UomListSchema(GenericListSchema):
61
    data: Optional[List['UomScheme']]
62

63

64
class ConvertSchema(BaseModel):
65
    id: UUID4
66
    uom_id_in: UUID4
67
    quantity_in: float
68
    uom_id_out: UUID4
69
    quantity_out: Optional[float] = None
70

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

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

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

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