class User(db.Model): """Create a user table.""" __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(60), index=True, unique=True) password_hash = db.Column(db.Text()) @property def password(self): """Prevent password from being accessed.""" raise AttributeError('Password is not a readable attribute.') @password.setter def password(self, password): """Create password hash.""" self.password_hash = generate_password_hash(password) def verify_password(self, password): """Check if hashed password matches actual password.""" return check_password_hash(self.password_hash, password) @classmethod def find_user_in_db(cls, email): return User.query.filter_by(email=email).first() def __repr__(self): return '<User: {} with email: {}>'.format(self.username, self.email)
class Specification(db.Model): """Create a user table.""" __tablename__ = 'specification' id = db.Column(db.Integer, primary_key=True) spec_name = db.Column(db.String(60), index=True, unique=True) url = db.Column(db.Text()) group = db.relationship('Group')
class Scenario(db.Model): __tablename__ = 'scenario' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(60), index=True, unique=True) description = db.Column(db.Text()) creation_date = db.Column(db.DateTime()) update_date = db.Column(db.DateTime()) last_run = db.Column(db.DateTime()) test = db.relationship("Test")
class TypeOfService(db.Model): __tablename__ = 'types_of_service' id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(50), nullable=False) description = db.Column(db.Text(), nullable=False) id_service_form = db.relationship('ServiceForm',secondary='type_service_form', backref=db.backref('types_of_service', lazy='dynamic')) def __str__(self): return self.name
class Test(db.Model): """Create a test table.""" __tablename__ = 'test' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(60), index=True, unique=True) test_type = db.Column(db.String(60)) data = db.Column(db.Text()) execute_date = db.Column(db.DateTime()) scenario_id = db.Column(db.Integer, db.ForeignKey('scenario.id')) result = db.relationship("Result") group = db.relationship('Group')
class Feedback(db.Model): __tablename__ = 'feedback' id = db.Column(db.Integer, primary_key=True) customer = db.Column(db.String(200), unique=True) dealer = db.Column(db.String(200)) rating = db.Column(db.Integer) comments = db.Column(db.Text()) def __init__(self, customer, dealer, rating, comments): self.customer = customer self.dealer = dealer self.rating = rating self.comments = comments
class Organization(db.Model): __tablename__ = 'organizations' # 1 регистрационный номер учетной записи id = db.Column(db.Integer(), primary_key=True) # 2 название организации name = db.Column(db.Text(), nullable=False) # 3 дата гос. регистрации юр. лица date_registration = db.Column(db.DateTime(), nullable=False) # 4 организационно-правовая форма opf = db.Column(db.Text(), nullable=False) # 5 адреса, телефон, эл. почта contacts = db.Column(db.Text(), nullable=False) # 6 ФИО руководителя name_boss = db.Column(db.Text(), nullable=False) # 7 информация о лицензии организации license = db.Column(db.Text(), nullable=False) # 8 формы обслуживания form_service = db.relationship('ServiceForm', secondary='organization_service_form', backref=db.backref('organizations', lazy='dynamic')) # 9 направления реабилитации или абилитации direction_of_rehabilitation = db.Column(db.Text(), nullable=False) # 10 перечень оказываемых услуг, наличие специалистов, наличие технических средств, реабилитационные программы resources = db.Column(db.Text(), nullable=False) # 11 общее количество мест для реабил. услуг total_seats = db.Column(db.Integer(), nullable=False) # 11 количество свободных мест для реабил. услуг free_seats = db.Column(db.Integer(), nullable=False) # 12 информация о результатх, проведенных проверок result_checks = db.Column(db.Text(), nullable=False) # 13 информация об опыте работы за последние 5 лет work_experience = db.Column(db.Text(), nullable=False) # 14 ведомственная принадлежность departmental_affiliation = db.Column(db.Text(), nullable=False) # 15 вышестоящая организация parent_organization = db.Column(db.Text(), nullable=False) # 16 другая информация, определнная региональными нормативными актами other_information = db.Column(db.Text(), nullable=False) def __str__(self): return self.name