add 'job_title' column to workers table
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing

This commit is contained in:
2025-08-26 22:04:13 +03:00
parent 173e8959ea
commit 20aefeb110
4 changed files with 16 additions and 10 deletions

View File

@@ -1,5 +1,4 @@
from .database_engine import async_session_ from .database_engine import async_session_
from .models import Worker,Component, Order from .models import Worker, Component, Order, job_title
__all__ = ["Worker", "Component", "Order", "async_session_", "job_title"]
__all__ = ["Worker", "Component", "Order", "async_session_"]

View File

@@ -3,6 +3,7 @@ from sqlalchemy.dialects.postgresql import ENUM
from sqlalchemy.orm import relationship, DeclarativeBase from sqlalchemy.orm import relationship, DeclarativeBase
status_enum = ENUM('Выполнено', 'В процессе', 'Создано', 'Ожидание комплектующих', name='status') status_enum = ENUM('Выполнено', 'В процессе', 'Создано', 'Ожидание комплектующих', name='status')
job_title = ENUM('Начальник цеха', 'Мастер', 'Сборщик', name='job_title')
class Base(DeclarativeBase): class Base(DeclarativeBase):
@@ -25,7 +26,8 @@ class Worker(Base):
telegram_id = Column(BIGINT, unique=True, nullable=False) telegram_id = Column(BIGINT, unique=True, nullable=False)
name = Column(String, nullable=False) name = Column(String, nullable=False)
email = Column(String, nullable=True) email = Column(String, nullable=True)
phone_number = Column(String, nullable=False) phone_number = Column(String, default=None)
job_title = Column(job_title, default='Сборщик'),
created_at = Column(Date, server_default=func.now()) created_at = Column(Date, server_default=func.now())
updated_at = Column(Date, onupdate=func.now()) updated_at = Column(Date, onupdate=func.now())

View File

@@ -62,8 +62,7 @@ async def orders_menu(message: Message):
async def get_order_worker_id(callback: CallbackQuery, state: FSMContext): async def get_order_worker_id(callback: CallbackQuery, state: FSMContext):
await state.set_state(OrderForm.worker_id) await state.set_state(OrderForm.worker_id)
async with async_session_() as session: async with async_session_() as session:
async with session.begin(): result = await session.execute(select(Worker.name, Worker.telegram_id).where(Worker.job_title == "Сборщик"))
result = await session.execute(select(Worker.name, Worker.telegram_id))
workers = result.all() workers = result.all()
await callback.message.answer("Введите сборщика ответственного за заказ:", await callback.message.answer("Введите сборщика ответственного за заказ:",
reply_markup=create_inline_kb( reply_markup=create_inline_kb(

View File

@@ -1,15 +1,21 @@
CREATE TYPE job_title AS ENUM ('Начальник цеха','Мастер','Сборщик');
CREATE TYPE status AS ENUM ('Выполнено','В процессе','Создано','Ожидание комплектующих');
CREATE TABLE workers CREATE TABLE workers
( (
id SERIAL PRIMARY KEY, id SERIAL PRIMARY KEY,
telegram_id BIGINT UNIQUE NOT NULL, telegram_id BIGINT UNIQUE NOT NULL,
name VARCHAR NOT NULL, name VARCHAR NOT NULL,
email VARCHAR(50), email VARCHAR(50),
phone_number VARCHAR(20) NOT NULL, phone_number VARCHAR(20),
job_title job_title default 'Сборщик',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP updated_at TIMESTAMP
); );
CREATE TYPE status AS ENUM ('Выполнено','В процессе','Создано','Ожидание комплектующих');
CREATE TABLE orders CREATE TABLE orders
( (