| from sqlalchemy import Column, Integer, String, DECIMAL, Date, DateTime, ForeignKey |
| from core.database import Base |
| from sqlalchemy.orm import relationship |
|
|
|
|
| class Membership(Base): |
| __tablename__ = "memberships" |
|
|
| id = Column(Integer, primary_key=True, index=True) |
| user_email = Column(String(255), nullable=False) |
| user_name = Column(String(255), nullable=False) |
| plan_id = Column(Integer, ForeignKey("membership_plans.id"), nullable=True) |
| plan_name = Column(String(255), nullable=False) |
| status = Column(String(50), nullable=False) |
| start_date = Column(Date, nullable=False) |
| renewal_date = Column(Date, nullable=False) |
| cancelled_at = Column(Date, nullable=True) |
| paused_at = Column(Date, nullable=True) |
| price = Column(DECIMAL(10, 2), nullable=False) |
| billing_period = Column(String(50), nullable=False) |
| max_students = Column(Integer, nullable=False, default=1) |
| last_login_at = Column(DateTime, nullable=True) |
| |
| |
| member_first_name = Column(String(255), nullable=True) |
| member_last_name = Column(String(255), nullable=True) |
| phone_number = Column(String(50), nullable=True) |
| emergency_contact_person = Column(String(255), nullable=True) |
| emergency_contact_number = Column(String(50), nullable=True) |
| |
| |
| students = relationship("Student", back_populates="membership", cascade="all, delete-orphan") |
|
|