first commit
This commit is contained in:
commit
f51a0657f1
12 files changed
+327
No files matched your search
@@ -0,0 +1,50 @@
|
||||
from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from datetime import datetime
|
||||
|
||||
from .database import Base
|
||||
|
||||
class Provider(Base):
|
||||
__tablename__ = "providers"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
name = Column(String, unique=True, index=True, nullable=False)
|
||||
photo_url = Column(String, nullable=True)
|
||||
# Remove hourly_rate; pricing is per-service now
|
||||
# hourly_rate = Column(Float, nullable=False)
|
||||
created_at = Column(DateTime, default=datetime.utcnow)
|
||||
|
||||
visits = relationship("Visit", back_populates="provider")
|
||||
services = relationship("Service", back_populates="provider", cascade="all, delete-orphan")
|
||||
|
||||
class Client(Base):
|
||||
__tablename__ = "clients"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
name = Column(String, unique=True, index=True, nullable=False)
|
||||
created_at = Column(DateTime, default=datetime.utcnow)
|
||||
|
||||
visits = relationship("Visit", back_populates="client")
|
||||
|
||||
class Service(Base):
|
||||
__tablename__ = "services"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
provider_id = Column(Integer, ForeignKey("providers.id"), nullable=False)
|
||||
name = Column(String, nullable=False)
|
||||
price = Column(Float, nullable=False)
|
||||
duration_minutes = Column(Integer, nullable=True)
|
||||
|
||||
provider = relationship("Provider", back_populates="services")
|
||||
|
||||
class Visit(Base):
|
||||
__tablename__ = "visits"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
provider_id = Column(Integer, ForeignKey("providers.id"), nullable=False)
|
||||
client_id = Column(Integer, ForeignKey("clients.id"), nullable=False)
|
||||
start_time = Column(DateTime, default=datetime.utcnow)
|
||||
duration_minutes = Column(Integer, nullable=False)
|
||||
provider = relationship("Provider", back_populates="visits")
|
||||
client = relationship("Client", back_populates="visits")
|
||||
|
||||
Reference in new issue
Block a user