lavkach3

Форк
0
/
partner_models.py 
46 строк · 2.3 Кб
1
import uuid
2
from enum import Enum
3
from typing import Optional
4

5
from sqlalchemy import Uuid, ForeignKey, Sequence
6
from sqlalchemy.orm import relationship, mapped_column, Mapped
7
from sqlalchemy_utils import CurrencyType, CountryType, LocaleType
8
from sqlalchemy_utils.types import EmailType, PhoneNumberType
9

10
from core.db import Base
11
from core.db.mixins import AllMixin
12

13

14
class PartnerType(str, Enum):
15
    """
16
    PARTNER: Просто партнер у которого можно закупать или продавать
17
    CONTACT: Контакт типа просто субкарточка с контактами
18
    SUBPARTNER: Субпартнер аля контакт, но как бы у него тоже можно покупать и продавать
19
    INTERCOMPANY: Это другое подразделение своей же компании
20
    STORE: Карточка для стора
21
    USER:Карточка для юзера, для того, что бы у Юзера тоже можно было что то покупать тк любой сотрудник компании это тоже партнер
22
    """
23
    PARTNER: str = 'partner'
24
    CONTACT: str = 'contact'
25
    SUBPARTNER: str = 'subpartner'
26
    INTERCOMPANY: str = 'intercompany'
27
    STORE: str = 'project'
28
    USER: str = 'user'
29

30
class Partner(Base,AllMixin):
31
    __tablename__ = "partner"
32
    lsn_seq = Sequence(f'partner_lsn_seq')
33
    id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, index=True, default=uuid.uuid4)
34
    title: Mapped[str] = mapped_column(index=True)
35
    #
36
    type: Mapped[PartnerType] = mapped_column(default=PartnerType.PARTNER)
37
    external_number: Mapped[Optional[str]] = mapped_column(unique=True)
38
    partner_id: Mapped[Optional[uuid.UUID]] = mapped_column(Uuid, ForeignKey("partner.id"), index=True)
39
    partner_rel: Mapped['Partner'] = relationship(lazy='selectin')
40
    phone_number: Mapped[Optional[str]] = mapped_column(PhoneNumberType)
41
    email: Mapped[Optional[str]] = mapped_column(EmailType)
42
    country: Mapped[str] = mapped_column(CountryType, default='US')
43
    #
44
    created_by: Mapped[uuid.UUID] = mapped_column(Uuid, ForeignKey("user.id"), index=True)
45
    locale: Mapped[str] = mapped_column(LocaleType, default='en_US')
46
    currency: Mapped[str] = mapped_column(CurrencyType, default='USD')
47

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

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

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

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