CoolFace
Apppublic

yeswanth0212/token_system

sourceHugging Faceupdated 3mo agoView on Hugging Face
1likes
models.py41 linesDownload Raw Back to backend
1from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, Enum2from sqlalchemy.orm import relationship3import enum4from database import Base5import datetime6 7class TokenStatus(str, enum.Enum):8    waiting = "waiting"9    serving = "serving"10    completed = "completed"11    cancelled = "cancelled"12    skipped = "skipped"13 14class Token(Base):15    __tablename__ = "tokens"16 17    id = Column(Integer, primary_key=True, index=True)18    token_number = Column(String, unique=True, index=True)19    patient_name = Column(String, index=True)20    department = Column(String, default="General", index=True) # General, Pediatrics, Cardiology, Dental21    priority = Column(Integer, default=0) # 0 = standard, 1 = priority/senior22    status = Column(Enum(TokenStatus), default=TokenStatus.waiting)23    created_at = Column(DateTime, default=datetime.datetime.utcnow)24    served_at = Column(DateTime, nullable=True)25    completed_at = Column(DateTime, nullable=True)26    27    counter_id = Column(Integer, ForeignKey("service_counters.id"), nullable=True)28    counter = relationship("ServiceCounter", back_populates="current_token")29 30class ServiceCounter(Base):31    __tablename__ = "service_counters"32 33    id = Column(Integer, primary_key=True, index=True)34    name = Column(String, unique=True, index=True) # e.g., "Counter 1"35    status = Column(String, default="active") # active, paused, offline36    supported_departments = Column(String, default="All") # comma-separated e.g. "General, Pediatrics" or "All"37    38    # One-to-one relationship for the current token being served39    current_token = relationship("Token", back_populates="counter", uselist=False, foreign_keys=[Token.counter_id])40 41