123 lines
4.0 KiB
Python
123 lines
4.0 KiB
Python
from sqlalchemy import create_engine, String, String, ForeignKey
|
|
from sqlalchemy.orm import relationship, sessionmaker, Mapped, mapped_column, DeclarativeBase
|
|
from typing import List
|
|
from datetime import datetime
|
|
|
|
class Base(DeclarativeBase):
|
|
pass
|
|
|
|
engine = create_engine('postgresql://postgres:994525@10.25.1.250:5432/mhtest', echo=True)
|
|
session_instance = sessionmaker(engine)
|
|
|
|
|
|
class Company(Base):
|
|
__tablename__ = 'companies'
|
|
|
|
uuid: Mapped[str] = mapped_column(primary_key=True)
|
|
title: Mapped[str] = mapped_column(String(100))
|
|
address: Mapped[str | None] = mapped_column(String(250))
|
|
additional_name: Mapped[str | None] = mapped_column(String(150))
|
|
lastmodify: Mapped[datetime]
|
|
# equipinuse: Mapped[List['Server','Workstation','Fiscalnik']] = relationship(back_populates="owner")
|
|
|
|
servers: Mapped[List["Server"]] = relationship(back_populates="owner")
|
|
workstations: Mapped[List["Workstation"]] = relationship(back_populates="owner")
|
|
fiscals: Mapped[List["Fiscalnik"]] = relationship(back_populates="owner")
|
|
|
|
def __repr__(self):
|
|
return f'{self.title}'
|
|
|
|
|
|
|
|
|
|
class Server(Base):
|
|
__tablename__ = 'servers'
|
|
|
|
uuid: Mapped[str] = mapped_column(primary_key=True)
|
|
UniqueID: Mapped[str | None] = mapped_column(String(50))
|
|
Teamviewer: Mapped[str | None] = mapped_column(String(100))
|
|
AnyDesk: Mapped[str | None] = mapped_column(String(100))
|
|
rdp: Mapped[str | None] = mapped_column(String(100))
|
|
ip: Mapped[str | None] = mapped_column(String(100))
|
|
CabinetLink: Mapped[str | None] = mapped_column(String(100))
|
|
DeviceName: Mapped[str | None] = mapped_column(String(100))
|
|
lastmodify: Mapped[datetime]
|
|
|
|
company_uuid: Mapped[str] = mapped_column(ForeignKey('companies.uuid'))
|
|
owner: Mapped["Company"] = relationship(back_populates="servers")
|
|
|
|
def __repr__(self):
|
|
return f'{self.DeviceName}'
|
|
|
|
class Workstation(Base):
|
|
__tablename__ = 'workstations'
|
|
|
|
uuid: Mapped[str] = mapped_column(primary_key=True)
|
|
AnyDesk: Mapped[str | None] = mapped_column(String(100))
|
|
Teamviewer: Mapped[str | None] = mapped_column(String(100))
|
|
DeviceName: Mapped[str | None] = mapped_column(String(100))
|
|
lastmodify: Mapped[datetime]
|
|
|
|
company_uuid: Mapped[str] = mapped_column(ForeignKey('companies.uuid'))
|
|
owner: Mapped["Company"] = relationship(back_populates="workstations")
|
|
|
|
def __repr__(self):
|
|
return f'{self.DeviceName}'
|
|
|
|
class Fiscalnik(Base):
|
|
__tablename__ = 'fiscals'
|
|
|
|
uuid: Mapped[str] = mapped_column(primary_key=True)
|
|
rnkkt: Mapped[str | None] = mapped_column(String(50))
|
|
LegalName: Mapped[str] = mapped_column(String(150))
|
|
FNNumber: Mapped[int]
|
|
KKTRegDate: Mapped[datetime]
|
|
FNExpireDate: Mapped[datetime]
|
|
FRSerialNumber: Mapped[int]
|
|
lastmodify: Mapped[datetime]
|
|
|
|
company_uuid: Mapped[str] = mapped_column(ForeignKey('companies.uuid'))
|
|
owner: Mapped["Company"] = relationship(back_populates="fiscals")
|
|
|
|
ofd_uuid: Mapped[str] = mapped_column(ForeignKey('ofd_names.uuid'))
|
|
ofd: Mapped["OFDName"] = relationship()
|
|
model_kkt_uuid: Mapped[str] = mapped_column(ForeignKey('model_kkts.uuid'))
|
|
model_kkt: Mapped["ModelKKT"] = relationship()
|
|
srok_fn_uuid: Mapped[str] = mapped_column(ForeignKey('sroki_fns.uuid'))
|
|
srok_fn: Mapped["SrokFN"] = relationship()
|
|
|
|
def __repr__(self):
|
|
return f'{self.FRSerialNumber}'
|
|
|
|
class OFDName(Base):
|
|
__tablename__ = 'ofd_names'
|
|
|
|
uuid: Mapped[str] = mapped_column(primary_key=True)
|
|
title: Mapped[str]
|
|
code: Mapped[str]
|
|
|
|
def __repr__(self):
|
|
return f'{self.title}'
|
|
|
|
class ModelKKT(Base):
|
|
__tablename__ = 'model_kkts'
|
|
|
|
uuid: Mapped[str] = mapped_column(primary_key=True)
|
|
title: Mapped[str]
|
|
code: Mapped[str]
|
|
|
|
def __repr__(self):
|
|
return f'{self.title}'
|
|
|
|
class SrokFN(Base):
|
|
__tablename__ = 'sroki_fns'
|
|
|
|
uuid: Mapped[str] = mapped_column(primary_key=True)
|
|
title: Mapped[str]
|
|
code: Mapped[str]
|
|
|
|
def __repr__(self):
|
|
return f'{self.title}'
|
|
|
|
Base.metadata.create_all(engine)
|