ZhuchkaKeyboards

Форк
0
/
models.py 
164 строки · 5.1 Кб
1
from sqlalchemy import Column, String, Integer, DateTime, BigInteger, Float, ForeignKey, Boolean
2
from sqlalchemy import create_engine
3
from sqlalchemy.orm import sessionmaker, declarative_base, scoped_session, relationship
4
import datetime
5
from config import database
6

7

8
Base = declarative_base()
9

10
engine = create_engine(database, echo=False)
11

12
Session = sessionmaker(bind=engine)
13
session = scoped_session(Session)
14
conn = engine.connect()
15

16

17
class TelegramUsers(Base):
18
    __tablename__ = "telegram_users"
19
    id = Column(BigInteger, primary_key=True)
20
    username = Column(String(length=32))
21
    group = Column(Integer)
22
    created_date = Column(DateTime, default=datetime.datetime.utcnow)
23

24

25
class Customers(Base):
26
    __tablename__ = "customers"
27
    id = Column(Integer, primary_key=True)
28
    vendor_id = Column(BigInteger)
29
    vendor_type = Column(Integer)
30
    first_name = Column(String(length=16))
31
    second_name = Column(String(length=16))
32
    username = Column(String(length=32))
33
    email = Column(String, default=None)
34
    created_date = Column(DateTime, default=datetime.datetime.utcnow)
35
    updated_date = Column(DateTime, default=None)
36
    usage = relationship('Orders')
37
    usage1 = relationship('ServiceOrders')
38

39

40
class Employees(Base):
41
    __tablename__ = "employees"
42
    id = Column(Integer, primary_key=True)
43
    first_name = Column(String(length=16))
44
    second_name = Column(String(length=16))
45
    group = Column(String(length=8))
46
    salary = Column(Float)
47
    contract_start = Column(DateTime, default=datetime.datetime.utcnow)
48
    contract_end = Column(DateTime)
49
    logs = relationship('Logs')
50
    usages = relationship('Orders')
51
    usage1 = relationship('Tasks')
52
    usage2 = relationship('ServiceOrders')
53

54

55
class Logs(Base):
56
    __tablename__ = "logs"
57
    id = Column(Integer, primary_key=True)
58
    employee_id = Column(Integer, ForeignKey('employees.id'))
59
    operation_name = Column(String(length=16))
60
    date = Column(DateTime, default=datetime.datetime.utcnow)
61

62

63
class Components(Base):
64
    __tablename__ = "components"
65
    id = Column(Integer, primary_key=True)
66
    component_name = Column(String(length=16))
67
    component_type = Column(String(length=12))
68
    usage = relationship('ComponentUsage')
69
    usage1 = relationship('Supplies')
70

71

72
class ComponentUsage(Base):
73
    __tablename__ = "component_usage"
74
    id = Column(Integer, primary_key=True)
75
    component_id = Column(Integer, ForeignKey('components.id'))
76
    usage_name = Column(String(length=16))
77
    usage_count = Column(Float)
78
    task_id = Column(Integer, ForeignKey('tasks.id'))
79

80

81
class Orders(Base):
82
    __tablename__ = "orders"
83
    id = Column(Integer, primary_key=True)
84
    customer_id = Column(Integer, ForeignKey('customers.id'))
85
    manager_id = Column(Integer, ForeignKey('employees.id'))
86
    transaction_id = Column(Integer, ForeignKey('transactions.id'))
87
    product_id = Column(Integer, ForeignKey('products.id'))
88
    created_date = Column(DateTime, default=datetime.datetime.utcnow)
89
    usage = relationship('Tasks')
90

91

92
class Transactions(Base):
93
    __tablename__ = "transactions"
94
    id = Column(Integer, primary_key=True)
95
    payment = Column(Integer)
96
    status = Column(Boolean)
97
    bank_id = Column(Integer, ForeignKey('banks.id'))
98
    card_type = Column(Integer)
99
    usage = relationship('Orders')
100
    usage1 = relationship('ServiceOrders')
101

102

103
class Products(Base):
104
    __tablename__ = "products"
105
    id = Column(Integer, primary_key=True)
106
    name = Column(String(length=16))
107
    category = Column(String)
108
    product_price = Column(Float)
109
    usage = relationship('Orders')
110

111

112
class Services(Base):
113
    __tablename__ = "services"
114
    id = Column(Integer, primary_key=True)
115
    name = Column(String(length=16))
116
    service_price = Column(Float)
117
    usage = relationship('ServiceOrders')
118

119

120
class ServiceOrders(Base):
121
    __tablename__ = "service_orders"
122
    id = Column(Integer, primary_key=True)
123
    customer_id = Column(Integer, ForeignKey('customers.id'))
124
    manager_id = Column(Integer, ForeignKey('employees.id'))
125
    transaction_id = Column(Integer, ForeignKey('transactions.id'))
126
    service_id = Column(Integer, ForeignKey('services.id'))
127
    usage = relationship('Tasks')
128

129

130
class Tasks(Base):
131
    __tablename__ = 'tasks'
132
    id = Column(Integer, primary_key=True)
133
    order_id = Column(Integer, ForeignKey('orders.id'))
134
    service_order_id = Column(Integer, ForeignKey('service_orders.id'))
135
    worker_id = Column(Integer, ForeignKey('employees.id'))
136
    status = Column(Integer)
137
    type = Column(Integer)
138
    usage = relationship('ComponentUsage')
139

140

141
class Distributors(Base):
142
    __tablename__ = 'distributors'
143
    id = Column(Integer, primary_key=True)
144
    name = Column(String(length=16))
145
    deliver_service = Column(String(length=16))
146
    relationship('Supplies')
147

148

149
class Supplies(Base):
150
    __tablename__ = 'supplies'
151
    id = Column(Integer, primary_key=True)
152
    component_id = Column(Integer, ForeignKey('components.id'))
153
    count = Column(Float)
154
    distributor = Column(Integer, ForeignKey('distributors.id'))
155

156

157
class Banks(Base):
158
    __tablename__ = 'banks'
159
    id = Column(Integer, primary_key=True)
160
    name = Column(String)
161
    usage = relationship('Transactions')
162

163

164
Base.metadata.create_all(engine)
165

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

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

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

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