예제 #1
0
class Role(BaseModel, db.Model):
    """
    owner
    manager
    auditor
    worker
    admin
    """
    __tablename__ = 'roles'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), unique=True)
예제 #2
0
class User(BaseUser, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(64), unique=True, nullable=False)
    email = db.Column(db.String(64), unique=True, nullable=False)
    phone = db.Column(db.String(12), nullable=True, server_default='')
    password = db.Column(db.String(255), nullable=False)  # FIXME do unicode value

    first_name = db.Column(db.String(100), nullable=True, server_default='')
    last_name = db.Column(db.String(100), nullable=True, server_default='')

    role = db.Column(db.Integer, db.ForeignKey('roles.id'))

    franchise_id = db.Column(db.Integer, db.ForeignKey('franchises.id'))
예제 #3
0
class CheckoutTask(BaseModel, db.Model):
    __tablename__ = 'tasks'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    object_id = db.Column(db.Integer, db.ForeignKey('objects.id'), nullable=False)
    checkout = db.Column(db.Integer, db.ForeignKey('checkouts.id'), nullable=False)
    status = db.Column(db.Boolean, nullable=False, comment="статус задачи")
    title = db.Column(db.String(100), nullable=False, comment="название задачи")
    assessment = db.Column(db.Float, nullable=True, comment="оценка данной проверки")  # только для аудиторов
예제 #4
0
class Checkout(BaseModel, db.Model):
    __tablename__ = 'checkouts'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    shop_id = db.Column(db.Integer, db.ForeignKey('shops.id'), nullable=False)
    start = db.Column(db.DateTime, nullable=False, comment="время начала задачи")
    end = db.Column(db.DateTime, nullable=False, comment="время конца задачи")
    worker = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False, comment="пользователь с ролью работник")
    type = db.Column(db.Enum(TypeCheckout), nullable=False, comment="Тип проверки")
예제 #5
0
class Object(BaseModel, db.Model):
    __tablename__ = 'objects'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(64), nullable=False)
    type = db.Column(db.String(64), nullable=False)
    x = db.Column(db.Integer, nullable=False)
    y = db.Column(db.Integer, nullable=False)
    shop_id = db.Column(db.Integer, db.ForeignKey('shops.id'), nullable=False)
예제 #6
0
class CheckoutSubTask(BaseModel, db.Model):
    __tablename__ = 'sub_tasks'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    task = db.Column(db.Integer, db.ForeignKey('tasks.id'), nullable=False)
    title = db.Column(db.String(256), nullable=False, comment="название подзадачи")
    data_checkout = db.Column(db.JSON, nullable=True, comment="данные используемые для подзадач")
예제 #7
0
class Franchise(BaseModel, db.Model):
    __tablename__ = 'franchises'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(256), unique=True, nullable=False)
예제 #8
0
class Shop(BaseModel, db.Model):
    __tablename__ = 'shops'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    address = db.Column(db.String(128), unique=True, nullable=False)
    phone = db.Column(db.String(12), nullable=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))