Update API service to use raw_waiting_time table

- Change RawOpdCheckpoint model to RawWaitingTime
- Update schema from FeedCheckpointIn to FeedWaitingTimeIn
- Switch to rawdata.raw_waiting_time table
- Keep existing /feed/checkpoint endpoint
- Add new fields: vn, txn, name, doctor_code, doctor_name, location_code, location_name, step_name, time
- Update permission to feed.waiting-time:write
This commit is contained in:
Gamegame101
2026-02-24 16:34:34 +07:00
parent bd7b658a6b
commit 9abd1f272c
25 changed files with 551 additions and 41 deletions

View File

@@ -9,19 +9,23 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.db.base import Base
class RawOpdCheckpoint(Base):
__tablename__ = "raw_opd_checkpoint"
__table_args__ = {"schema": "operationbi"}
class RawWaitingTime(Base):
__tablename__ = "raw_waiting_time"
__table_args__ = {"schema": "rawdata"}
id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
hn: Mapped[int] = mapped_column(BigInteger, nullable=False)
vn: Mapped[int] = mapped_column(BigInteger, nullable=False)
location: Mapped[str] = mapped_column(Text, nullable=False)
type: Mapped[str] = mapped_column(String(64), nullable=False)
timestamp_in: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=False)
timestamp_out: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
waiting_time: Mapped[int | None] = mapped_column(Integer, nullable=True)
bu: Mapped[str | None] = mapped_column(String(128), nullable=True)
vn: Mapped[int | None] = mapped_column(BigInteger, nullable=True)
txn: Mapped[int | None] = mapped_column(BigInteger, nullable=True)
hn: Mapped[str | None] = mapped_column(String(50), nullable=True)
name: Mapped[str | None] = mapped_column(Text, nullable=True)
doctor_code: Mapped[str | None] = mapped_column(String(50), nullable=True)
doctor_name: Mapped[str | None] = mapped_column(Text, nullable=True)
location_code: Mapped[str | None] = mapped_column(String(50), nullable=True)
location_name: Mapped[str | None] = mapped_column(Text, nullable=True)
step_name: Mapped[str | None] = mapped_column(Text, nullable=True)
time: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=False)
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=False, server_default=func.now())
updated_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), nullable=False, server_default=func.now())
class ApiClient(Base):