ZhuchkaKeyboards
164 строки · 5.1 Кб
1from sqlalchemy import Column, String, Integer, DateTime, BigInteger, Float, ForeignKey, Boolean2from sqlalchemy import create_engine3from sqlalchemy.orm import sessionmaker, declarative_base, scoped_session, relationship4import datetime5from config import database6
7
8Base = declarative_base()9
10engine = create_engine(database, echo=False)11
12Session = sessionmaker(bind=engine)13session = scoped_session(Session)14conn = engine.connect()15
16
17class TelegramUsers(Base):18__tablename__ = "telegram_users"19id = Column(BigInteger, primary_key=True)20username = Column(String(length=32))21group = Column(Integer)22created_date = Column(DateTime, default=datetime.datetime.utcnow)23
24
25class Customers(Base):26__tablename__ = "customers"27id = Column(Integer, primary_key=True)28vendor_id = Column(BigInteger)29vendor_type = Column(Integer)30first_name = Column(String(length=16))31second_name = Column(String(length=16))32username = Column(String(length=32))33email = Column(String, default=None)34created_date = Column(DateTime, default=datetime.datetime.utcnow)35updated_date = Column(DateTime, default=None)36usage = relationship('Orders')37usage1 = relationship('ServiceOrders')38
39
40class Employees(Base):41__tablename__ = "employees"42id = Column(Integer, primary_key=True)43first_name = Column(String(length=16))44second_name = Column(String(length=16))45group = Column(String(length=8))46salary = Column(Float)47contract_start = Column(DateTime, default=datetime.datetime.utcnow)48contract_end = Column(DateTime)49logs = relationship('Logs')50usages = relationship('Orders')51usage1 = relationship('Tasks')52usage2 = relationship('ServiceOrders')53
54
55class Logs(Base):56__tablename__ = "logs"57id = Column(Integer, primary_key=True)58employee_id = Column(Integer, ForeignKey('employees.id'))59operation_name = Column(String(length=16))60date = Column(DateTime, default=datetime.datetime.utcnow)61
62
63class Components(Base):64__tablename__ = "components"65id = Column(Integer, primary_key=True)66component_name = Column(String(length=16))67component_type = Column(String(length=12))68usage = relationship('ComponentUsage')69usage1 = relationship('Supplies')70
71
72class ComponentUsage(Base):73__tablename__ = "component_usage"74id = Column(Integer, primary_key=True)75component_id = Column(Integer, ForeignKey('components.id'))76usage_name = Column(String(length=16))77usage_count = Column(Float)78task_id = Column(Integer, ForeignKey('tasks.id'))79
80
81class Orders(Base):82__tablename__ = "orders"83id = Column(Integer, primary_key=True)84customer_id = Column(Integer, ForeignKey('customers.id'))85manager_id = Column(Integer, ForeignKey('employees.id'))86transaction_id = Column(Integer, ForeignKey('transactions.id'))87product_id = Column(Integer, ForeignKey('products.id'))88created_date = Column(DateTime, default=datetime.datetime.utcnow)89usage = relationship('Tasks')90
91
92class Transactions(Base):93__tablename__ = "transactions"94id = Column(Integer, primary_key=True)95payment = Column(Integer)96status = Column(Boolean)97bank_id = Column(Integer, ForeignKey('banks.id'))98card_type = Column(Integer)99usage = relationship('Orders')100usage1 = relationship('ServiceOrders')101
102
103class Products(Base):104__tablename__ = "products"105id = Column(Integer, primary_key=True)106name = Column(String(length=16))107category = Column(String)108product_price = Column(Float)109usage = relationship('Orders')110
111
112class Services(Base):113__tablename__ = "services"114id = Column(Integer, primary_key=True)115name = Column(String(length=16))116service_price = Column(Float)117usage = relationship('ServiceOrders')118
119
120class ServiceOrders(Base):121__tablename__ = "service_orders"122id = Column(Integer, primary_key=True)123customer_id = Column(Integer, ForeignKey('customers.id'))124manager_id = Column(Integer, ForeignKey('employees.id'))125transaction_id = Column(Integer, ForeignKey('transactions.id'))126service_id = Column(Integer, ForeignKey('services.id'))127usage = relationship('Tasks')128
129
130class Tasks(Base):131__tablename__ = 'tasks'132id = Column(Integer, primary_key=True)133order_id = Column(Integer, ForeignKey('orders.id'))134service_order_id = Column(Integer, ForeignKey('service_orders.id'))135worker_id = Column(Integer, ForeignKey('employees.id'))136status = Column(Integer)137type = Column(Integer)138usage = relationship('ComponentUsage')139
140
141class Distributors(Base):142__tablename__ = 'distributors'143id = Column(Integer, primary_key=True)144name = Column(String(length=16))145deliver_service = Column(String(length=16))146relationship('Supplies')147
148
149class Supplies(Base):150__tablename__ = 'supplies'151id = Column(Integer, primary_key=True)152component_id = Column(Integer, ForeignKey('components.id'))153count = Column(Float)154distributor = Column(Integer, ForeignKey('distributors.id'))155
156
157class Banks(Base):158__tablename__ = 'banks'159id = Column(Integer, primary_key=True)160name = Column(String)161usage = relationship('Transactions')162
163
164Base.metadata.create_all(engine)165