35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from datetime import datetime
|
|
from sqlalchemy import Boolean, Column, DateTime, Enum, ForeignKey, Integer, Time
|
|
from sqlalchemy.orm import relationship
|
|
import enum
|
|
|
|
from app.db.base import Base
|
|
|
|
|
|
class WeekDay(str, enum.Enum):
|
|
MONDAY = "monday"
|
|
TUESDAY = "tuesday"
|
|
WEDNESDAY = "wednesday"
|
|
THURSDAY = "thursday"
|
|
FRIDAY = "friday"
|
|
SATURDAY = "saturday"
|
|
SUNDAY = "sunday"
|
|
|
|
|
|
class DoctorSchedule(Base):
|
|
__tablename__ = "doctor_schedules"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
doctor_id = Column(Integer, ForeignKey("doctors.id"), nullable=False)
|
|
day_of_week = Column(Enum(WeekDay), nullable=False)
|
|
start_time = Column(Time, nullable=False)
|
|
end_time = Column(Time, nullable=False)
|
|
is_available = Column(Boolean, default=True, nullable=False)
|
|
created_at = Column(DateTime, default=datetime.utcnow)
|
|
updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
|
|
|
# Relationships
|
|
doctor = relationship("Doctor", back_populates="schedules")
|
|
|
|
class Config:
|
|
orm_mode = True |