._.
This commit is contained in:
parent
f700ee7992
commit
070e408b63
173
API/data/connect.py
Normal file
173
API/data/connect.py
Normal file
@ -0,0 +1,173 @@
|
||||
from sqlalchemy import create_engine, Column, Integer, VARCHAR, Float, ForeignKey, Date, Text, DateTime
|
||||
from sqlalchemy.orm import Session, sessionmaker, relationship
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
||||
base = declarative_base()
|
||||
__factory = None
|
||||
|
||||
|
||||
class Post(base):
|
||||
__tablename__ = 'posts'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
|
||||
|
||||
class Department(base):
|
||||
__tablename__ = 'departments'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
description = Column(VARCHAR(1000))
|
||||
|
||||
|
||||
class User(base):
|
||||
__tablename__ = 'users'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
first_name = Column(VARCHAR(100))
|
||||
last_name = Column(VARCHAR(100))
|
||||
patronymic = Column(VARCHAR(100))
|
||||
work_phone = Column(VARCHAR(20))
|
||||
phone = Column(VARCHAR(20))
|
||||
office = Column(VARCHAR(10))
|
||||
birthday = Column(Date)
|
||||
other_info = Column(Text)
|
||||
login = Column(VARCHAR(100))
|
||||
password = Column(VARCHAR(150))
|
||||
|
||||
helper_id = Column(Integer, ForeignKey('users.id'))
|
||||
director_id = Column(Integer, ForeignKey('users.id'))
|
||||
post_id = Column(Integer, ForeignKey('posts.id'))
|
||||
department_id = Column(Integer, ForeignKey('departments.id'))
|
||||
|
||||
|
||||
class DepartmentUser(base):
|
||||
__tablename__ = 'department_users'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
department_id = Column(Integer, ForeignKey('departments.id'))
|
||||
user_id = Column(Integer, ForeignKey('user.id'))
|
||||
|
||||
|
||||
class DocumentCategory(base):
|
||||
__tablename__ = 'document_categories'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
|
||||
|
||||
class Document(base):
|
||||
__tablename__ = 'documents'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
date_created = Column(DateTime)
|
||||
date_updated = Column(DateTime)
|
||||
|
||||
category_id = Column(Integer, ForeignKey('document_categories.id'))
|
||||
|
||||
|
||||
class Comment(base):
|
||||
__tablename__ = 'comments'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
text = Column(Text)
|
||||
date_created = Column(DateTime)
|
||||
date_updated = Column(DateTime)
|
||||
|
||||
user_id = Column(Integer, ForeignKey('users.id'))
|
||||
document_id = Column(Integer, ForeignKey('documents.id'))
|
||||
|
||||
|
||||
class MaterialType(base):
|
||||
__tablename__ = 'material_types'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
|
||||
|
||||
class MaterialStatus(base):
|
||||
__tablename__ = 'material_statuses'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
|
||||
|
||||
class Material(base):
|
||||
__tablename__ = 'materials'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
success_date = Column(Date)
|
||||
edit_date = Column(DateTime)
|
||||
area = Column(Text)
|
||||
|
||||
user_id = Column(Integer, ForeignKey('users.id'))
|
||||
status_id = Column(Integer, ForeignKey('material_statuses.id'))
|
||||
type_id = Column(Integer, ForeignKey('material_types.id'))
|
||||
|
||||
|
||||
class EventType(base):
|
||||
__tablename__ = 'event_types'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
|
||||
|
||||
class EventStatus(base):
|
||||
__tablename__ = 'event_statuses'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
|
||||
|
||||
class Event(base):
|
||||
__tablename__ = 'events'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
title = Column(VARCHAR(100))
|
||||
datetime_event = Column(DateTime)
|
||||
short_description = Column(VARCHAR(1500))
|
||||
|
||||
type_id = Column(Integer, ForeignKey('event_types.id'))
|
||||
status_id = Column(Integer, ForeignKey('event_statuses.id'))
|
||||
|
||||
|
||||
class DepartmentEvent(base):
|
||||
__tablename__ = 'department_events'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
event_id = Column(Integer, ForeignKey('events.id'))
|
||||
department_id = Column(Integer, ForeignKey('departments.id'))
|
||||
|
||||
|
||||
class ResponsibleUser(base):
|
||||
__tablename__ = 'responsible_users'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
event_id = Column(Integer, ForeignKey('events.id'))
|
||||
user_id = Column(Integer, ForeignKey('users.id'))
|
||||
|
||||
|
||||
class UserEvent(base):
|
||||
__tablename__ = 'user_events'
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
event_id = Column(Integer, ForeignKey('events.id'))
|
||||
user_id = Column(Integer, ForeignKey('users.id'))
|
||||
|
||||
|
||||
def init_db():
|
||||
eng = create_engine(
|
||||
'postgresql+psycopg2://postgres:2509@localhost:5432/prb1'
|
||||
)
|
||||
|
||||
global __factory
|
||||
__factory = sessionmaker(bind=eng)
|
||||
base.metadata.create_all(eng)
|
||||
|
||||
|
||||
def connect() -> Session:
|
||||
global __factory
|
||||
return __factory()
|
||||
490
Erd.drawio
490
Erd.drawio
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user