diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 47f34fd..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "database/assebmlr"] - path = database/assebmlr - url = https://git.denco.store/agonex/Assemblr-Database.git diff --git a/database/__init__.py b/database/__init__.py index 75eb683..70cdde6 100644 --- a/database/__init__.py +++ b/database/__init__.py @@ -1 +1 @@ -from .assebmlr.models import * +from database.models import * diff --git a/database/assebmlr b/database/assebmlr deleted file mode 160000 index 4096f3f..0000000 --- a/database/assebmlr +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4096f3f868bc263df0989e2496365719b6863f2d diff --git a/database/enums.py b/database/enums.py new file mode 100644 index 0000000..e167a8d --- /dev/null +++ b/database/enums.py @@ -0,0 +1,10 @@ +from enum import unique, IntEnum + + +@unique +class AssemblyState(IntEnum): + NOT_STARTED = 0, + ASSEMBLING_PRODUCTS = 1, + ALL_PRODUCTS_ASSEMBLED = 2, + CONFIRMED = 3, + ENDED = 4 diff --git a/database/mariadb.py b/database/mariadb.py index 388b42d..f56740a 100644 --- a/database/mariadb.py +++ b/database/mariadb.py @@ -1,4 +1,5 @@ import mariadb + import settings diff --git a/database/models.py b/database/models.py new file mode 100644 index 0000000..4b77fc3 --- /dev/null +++ b/database/models.py @@ -0,0 +1,44 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() + + +class User(db.Model): + __tablename__ = 'users' + id = db.Column(db.Integer, primary_key=True, comment='ID пользователя') + + login = db.Column(db.String, nullable=False, comment='Логин') + password_hash = db.Column(db.String, nullable=False, comment='Пароль') + + sipro_id = db.Column(db.Integer, nullable=True, comment='ID пользователя в SIPRO') + + +class Assembly(db.Model): + __tablename__ = 'assemblies' + id = db.Column(db.Integer, primary_key=True, comment='ID сборки') + + created_at = db.Column(db.DateTime, nullable=True, comment='Дата и время начала сборки') + ended_at = db.Column(db.DateTime, nullable=True, comment='Дата и время конца сборки') + + user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) + user = db.relationship('User', backref='assemblies') + + order_id = db.Column(db.Integer, nullable=False, comment='ID заказа в базе данных') + is_active = db.Column(db.Boolean, nullable=False, comment='Активная ли сборка') + state = db.Column(db.Integer, nullable=False, comment='Состояние сборки') + + +class Barcode(db.Model): + __tablename__ = 'barcodes' + id = db.Column(db.Integer, primary_key=True, comment='ID пользователя') + denco_article = db.Column(db.Integer, nullable=False, comment='Артикул', index=True) + barcode = db.Column(db.String, nullable=False, comment='Баркод', index=True) + + +class Application(db.Model): + __tablename__ = 'applications' + id = db.Column(db.Integer, primary_key=True, comment='') + name = db.Column(db.String(40), nullable=False) + version = db.Column(db.String(10), nullable=False) + uploaded = db.Column(db.DateTime, nullable=False) + filename = db.Column(db.String, nullable=False) diff --git a/routes/assembly.py b/routes/assembly.py index 1e7d7df..d2f22f4 100644 --- a/routes/assembly.py +++ b/routes/assembly.py @@ -4,7 +4,7 @@ from flask import Blueprint, request, jsonify from flask_jwt_extended import get_jwt_identity import database -from database.assebmlr.enums import AssemblyState +from database.enums import AssemblyState from routes.utils import jwt_protect_blueprint import sipro.api.orders