class StartDocType(db.Model): __tabname__ = "start_doc_type" id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(50), index=True, unique=True) docs = db.relationship("StartDoc", backref="doc_type", cascade="all") def __repr__(self): return "{}".format(self.name) def assign_document(self, document): self.docs.append(document)
class Workplace(db.Model): __tablename__ = "workplace" id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(50), index=True, unique=True) workers = db.relationship("Worker", backref="workplace", cascade="all") def __repr__(self): return "{}".format(self.name) def set_workplace(self, worker): self.workers.append(worker)
class EventKind(db.Model): __tablename__ = "event_kind" id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(50), index=True, nullable=False, unique=True) events = db.relationship("Event", backref="event_kind", cascade="all") def __repr__(self): return "{}".format(self.name) def set_kind(self, event): self.events.append(event)
class Function(db.Model): __tablename__ = "function" id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(120), index=True, unique=True) salary = db.Column(db.Float(), index=True) workers = db.relationship("Worker", backref="function", cascade="all") def __repr__(self): return "{}".format(self.name) def set_function(self, worker): self.workers.append(worker)
class Worker(db.Model, UserMixin): __tablename__ = "worker" id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(120), index=True, unique=True) contract_begin = db.Column(db.Date(), index=True) work_end = db.Column(db.Date(), index=True) contract_end = db.Column(db.Date(), index=True) working = db.Column(db.Boolean(), default=True) events = db.relationship("Event", backref="worker", cascade="all") function_id = db.Column(db.Integer, db.ForeignKey("function.id")) workplace_id = db.Column(db.Integer, db.ForeignKey("workplace.id")) start_docs = db.relationship("StartDoc", backref="worker", cascade="all") def __repr__(self): return "{}".format(self.name) def assign_event(self, event): self.events.append(event) def assign_start_doc(self, doc): self.start_docs.append(doc)
class User(db.Model, UserMixin): __tablename__ = "user" id = db.Column(db.Integer(), primary_key=True) username = db.Column(db.String(120), index=True, unique=True) password_hash = db.Column(db.String(128)) roles = db.relationship("Role", secondary="user_roles") def __repr__(self): return "{}".format(self.username) def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password_hash, password) def assign_role(self, role): self.roles.append(role)