from sqlalchemy import Column, Integer, String, Date, DateTime, Float, ForeignKey, Text
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from app.database.base import Base
class Medication(Base):
__tablename__ = "medications"
id = Column(Integer, primary_key=True, index=True)
name = Column(String(100), nullable=False)
description = Column(Text)
manufacturer = Column(String(100))
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
class Prescription(Base):
__tablename__ = "prescriptions"
id = Column(Integer, primary_key=True, index=True)
patient_id = Column(Integer, ForeignKey("patients.id"), nullable=False)
doctor_id = Column(Integer, ForeignKey("doctors.id"), nullable=False)
medication_id = Column(Integer, ForeignKey("medications.id"), nullable=False)
dosage = Column(String(100))
frequency = Column(String(100))
duration = Column(String(100))
instructions = Column(Text)
issue_date = Column(Date, nullable=False)
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
class PharmacyOrder(Base):
__tablename__ = "pharmacy_orders"
id = Column(Integer, primary_key=True, index=True)
prescription_id = Column(Integer, ForeignKey("prescriptions.id"), nullable=False)
order_date = Column(Date, nullable=False)
status = Column(String(50), default="pending")
notes = Column(Text)
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())