Пример #1
0
class Purchase(db.Model):
    """Purchase model."""

    # fn_number - fn, fd_number - i, fpd_number - fp
    id = db.Column(db.Integer, primary_key=True)  # noqa: WPS125
    user_id = db.Column(
        db.Integer,
        db.ForeignKey('user.id', ondelete='CASCADE'),
        index=True,
    )
    fn_number = db.Column(db.String)
    fd_number = db.Column(db.String)
    fpd_number = db.Column(db.String)
    receipt_type = db.Column(db.String)
    date = db.Column(db.DateTime)
    sum = db.Column(db.Float)  # noqa: WPS125
    loaded = db.Column(db.String)
    organization = db.Column(db.String)

    user = relationship('User', backref='purchases')
    category = relationship('Category',
                            secondary='purchase_category',
                            backref='purchases')

    def __str__(self):
        return self.organization

    def __repr__(self):
        return '<Покупка-{0}, за дату-{1}, на сумму-{2}, валид-{3}'.format(
            self.id,
            self.date,
            self.sum,
            self.loaded,
        )
Пример #2
0
class User(db.Model, UserMixin):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    email = db.Column(db.String(50), unique=True)
    password_hash = db.Column(db.String(255), nullable=False, unique=True)
    role = db.Column(db.String(5), nullable=False)

    categories = db.relationship('Category',
                                 backref='category_owner',
                                 lazy='dynamic')
    transactions = db.relationship('Transaction',
                                   backref='transaction_owner',
                                   lazy='dynamic')
    balance = db.relationship('Balance',
                              backref='balance_owner',
                              uselist=False)

    def __repr__(self):
        return f"<User: name = {self.name}, id = {self.id}>"

    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)

    @property
    def is_admin(self):
        return self.role == 'ADMIN'
Пример #3
0
class Cash_desk(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    shop_id = db.Column(db.Integer, db.ForeignKey('shop.id'), nullable=False)
    fn = db.Column(db.String(16), unique=True, index=True)

    def __repr__(self):
        return '<Cash desk {} ({})>'.format(self.fn, self.shop.query.first())
Пример #4
0
class Table(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    floor = db.Column(db.Integer, index=True)
    room = db.Column(db.Integer, index=True)

    def __repr__(self):
        return f'Table located on {self.floor} floor in room {self.room}'
Пример #5
0
class CheckboxState(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    press_time = db.Column(db.DateTime, default=datetime.now(), nullable=False)
    bool_state = db.Column(db.Boolean)

    def __repr__(self):
        return f"{self.bool_state} - {self.press_time}"
Пример #6
0
class User(
        db.Model, UserMixin
):  # Множественное наследование класса, берет и из db.Model и из UserMixin
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(
        db.String(64), index=True, unique=True
    )  # Те колонки по которым буем часто искать помечаем unique=True - будет быстрее
    password = db.Column(db.String(128))
    role = db.Column(db.String(10), index=True)
    email = db.Column(db.String(50))

    def set_password(
            self,
            password):  # Заменяет пароль на хеш пароля перед записью в БД
        self.password = generate_password_hash(password)

    def check_password(
        self, password
    ):  # Сверяем хеш из базы с хешем получиным от введенного пароля. Получим Тру или Фолс.
        return check_password_hash(self.password, password)

    @property  # Декоратор. Помогает методу вести себя как атрибут
    def is_admin(self):  # можно вызывать без скобочек
        return self.role == 'admin'

    def __repr__(self):
        return '<User name: {}, id: {}>'.format(
            self.username,
            self.id)  # Что бы выводить имя пользователя в формате
Пример #7
0
class Account(db.Model):
    """Модель таблицы привязанных аккаунтов Steam.

    Хранит идентификационный номер профиля в БД, идентификационный номер
    профиля на сервисах Steam, логин профиля, логин-токен для входа без пароля,
    sentry-файл для входа без 2FA-кода, ссылку на аватар профиля, никнейм
    профиля, баланс кошелька, валюту кошелька и идентификационный номер
    пользователя, которому принадлежит профиль.
    """

    __tablename__ = "accounts"

    account_id = db.Column(db.Integer, primary_key=True)
    steam_id = db.Column(db.BigInteger, index=True)
    username = db.Column(db.String, index=True, nullable=False)
    login_key = db.Column(db.String, unique=True)
    sentry = db.Column(db.LargeBinary)
    avatar_url = db.Column(db.String)
    nickname = db.Column(db.String)
    wallet_balance = db.Column(db.Integer)
    currency = db.Column(db.String(3))
    user_id = db.Column(db.Integer, db.ForeignKey('users.user_id'))
    items = relationship("Item", cascade="all,delete", backref='accounts',
                         lazy="dynamic")

    def __repr__(self):
        """Определяем формат вывода объекта класса Account."""
        return f"Account {self.username}."
Пример #8
0
class User(db.Model, UserMixin
           ):  #множественное наследование от классов db.Model и UserMixin
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(50), index=True, unique=True)
    password = db.Column(db.String(100))
    role = db.Column(db.String(10), index=True)
    email = db.Column(db.String(50))

    def set_password(
        self, password
    ):  # преобразовать пароль пользователя в хеш и сохранить в БД в таком виде
        self.password = generate_password_hash(password)

    def check_password(
            self, password
    ):  # сравнение хешей пароля из БД и введенного пользователем
        return check_password_hash(self.password, password)

    @property  # декоратор, позволяющий методу вести себя как атрибут
    def is_admin(self):
        return self.role == 'admin'  # проверить атрибут role объекта класса User на соответствие админу

    def __repr__(self):
        return '<User {}>'.format(
            self.username
        )  # при вызове функции возврат строки с именем пользователя, а не объекта
Пример #9
0
class User(db.Model, UserMixin):
    """
    Database Model for Users
    """

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(50), index=True, unique=True)
    password = db.Column(db.String(128))
    role = db.Column(db.String(10), index=True)
    email = db.Column(db.String(50), unique=True)

    def set_password(self, password):
        """
        Sets password for each user and generates password hash via werkzeug. \n
        Hash is saved to `password` class attribute.
        """
        self.password = generate_password_hash(password)

    def check_password(self, password):
        """
        Checks provided password with hash in database. \n
        Returns True or False
        """
        return check_password_hash(self.password, password)

    @property
    def is_admin(self):
        return self.role == "admin"

    def __repr__(self):
        return f"<User name: {self.username}, id: {self.id}>"
Пример #10
0
class StatusCase(db.Model):
    __tablename__ = "status_case"
    id = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String, nullable=False)
    
    def __repr__(self):
        return f'Status case: {self.id}, {self.description}>'
Пример #11
0
class Lesson(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer)
    word_id = db.Column(db.Integer)

    def __repr__(self):
        return f"{self.original_word}: {self.translatted_word}: id={self.id}"
Пример #12
0
class TypeRealty(db.Model):
    __tablename__ = "type_realty"
    id = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String, nullable=False)
    
    def __repr__(self):
        return f'Type realty: {self.id}, {self.description}>'
Пример #13
0
class AirportId(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    city = db.Column(db.String, unique=True)
    airport_id = db.Column(db.String, unique=True)

    def __repr__(self):
        return f"Airport id = {self.airport_id}"
Пример #14
0
class Status(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    task = db.Column(db.Integer, db.ForeignKey("task.id"))

    def __repr__(self):
        return f"<Status {self.name}>"
Пример #15
0
class Major(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    major_code = db.Column(db.String(12), index=True, nullable=False)
    major_name = db.Column(db.String(255), nullable=False)

    def __repr__(self):
        return '<Направление {} {}>'.format(self.major_code, self.major_name)
Пример #16
0
class ChatMessages(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(256))
    msg = db.Column(db.Text)

    def __repr__(self):
        return '<User %r>' % self.username
Пример #17
0
class TypeApplicant(db.Model):
    __tablename__ = "type_applicant"
    id = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String, nullable=False)

    def __repr__(self):
        return f'<Type applicant: {self.id}, {self.description}>'
Пример #18
0
class Event(db.Model):
    __tablename__ = "events"
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.String, nullable=False)
    time = db.Column(db.String, nullable=True)
    comment = db.Column(db.String, nullable=True)
    number_case = db.Column(db.String,
                            db.ForeignKey('case.number_case'),
                            index=True)

    case = relationship('Case', backref='events')

    @property
    def fdate(self):
        return datetime.strptime(self.date, '%Y-%m-%d').strftime('%d.%m.%Y')

    @property
    def ftime(self):
        if self.time is None:
            return ''
        return self.time

    @property
    def fcomment(self):
        if self.comment is None:
            return ''
        return self.comment

    def __repr__(self):
        return f'<Event: {self.date} for case {self.number_case}>'
Пример #19
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.Text)
    timestamp = db.Column(db.DateTime, index=True, default=datetime.now)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<Post {}'.format(self.body)
Пример #20
0
class InsurancePolicy(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    series = db.Column(db.String)
    number = db.Column(db.Integer)
    date_of_issue = db.Column(db.Date)

    def __repr__(self):
        return f'<Policy {self.id} {self.series} {self.number}>'
Пример #21
0
class Favourite(db.Model):
    __tablename__ = "favourite_vacancies"

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    vacancy_id = db.Column(db.Integer,
                           db.ForeignKey('vacancies.id'),
                           nullable=False)
Пример #22
0
class Car(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    plate = db.Column(db.String(9), unique=True)
    description = db.Column(db.String(255))
    waybills = db.relationship('Waybill', backref='car', lazy='dynamic')

    def __repr__(self):
        return '<Машина {}>'.format(self.plate)
Пример #23
0
class Settings(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(50))
    name = db.Column(db.String(50))
    value = db.Column(db.String(50))

    def __repr__(self):
        return '<{} = {}>'.format(self.name, self.value)
Пример #24
0
class Tasks(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'), index=True)
    title = db.Column(db.String, nullable=False)
    text = db.Column(db.Text, nullable=True)

    def __repr__(self):
        return F'<Tasks {self.title} {self.text}>'
Пример #25
0
class People(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(80))
    patronymic = db.Column(db.String(80))
    last_name = db.Column(db.String(80))
    birth_date = db.Column(db.Date)

    def __repr__(self):
        return f'People {self.id} {self.last_name} {self.first_name} {self.patronymic} {self.birth_date}'
Пример #26
0
class Categories(db.Model):
    __tablename__ = "categories"
    id = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String, nullable=True)
    description_lite = db.Column(db.String, nullable=True)
    type_realty = db.Column(db.String, db.ForeignKey('type_realty.id'))
    
    def __repr__(self):
        return f'Category: {self.id}, {self.description}>'
Пример #27
0
class Shop(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    inn = db.Column(db.String(20))
    name = db.Column(db.String(255), unique=True, nullable=False)
    address = db.Column(db.String(255))
    cash_desks = relationship('Cash_desk', backref='shop', lazy='dynamic')

    def __repr__(self):
        return '<Shop {}>'.format(self.name)
Пример #28
0
class Pen_name(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    product_id = db.Column(db.Integer,
                           db.ForeignKey('product.id'),
                           nullable=False)
    name = db.Column(db.String(255), index=True, unique=True, nullable=False)

    def __repr__(self):
        return '<Pen name {}>'.format(self.name)
Пример #29
0
class News(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String, nullable=False)
    url = db.Column(db.String, unique=True, nullable=False)
    published = db.Column(db.DateTime, nullable=False)
    text = db.Column(db.Text, nullable=True)

    def __repr__(self):
        return '<News {} {}>'.format(self.title, self.url)
Пример #30
0
class News(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String, nullable=False)
    url = db.Column(db.String, unique=True, nullable=False)
    date = db.Column(db.Date, nullable=False)
    text = db.Column(db.String, nullable=True)

    def __repr__(self):
        return f'News {self.title} {self.url}'