Seth0330 commited on
Commit
78c3038
·
verified ·
1 Parent(s): c46a5c6

Update app/models/class_.py

Browse files
Files changed (1) hide show
  1. app/models/class_.py +35 -3
app/models/class_.py CHANGED
@@ -35,9 +35,9 @@ class Class(Base):
35
 
36
  # Coach assignment
37
  coach_email = Column(String(255), nullable=True, index=True)
38
-
39
- # No membership plan link anymore kept fully independent
40
- # (plan_id / membership_plan_id removed)
41
 
42
  # Status + timestamps
43
  is_active = Column(Boolean, default=True)
@@ -55,6 +55,12 @@ class Class(Base):
55
  back_populates="class_",
56
  cascade="all, delete-orphan",
57
  )
 
 
 
 
 
 
58
 
59
 
60
  class ClassEnrollment(Base):
@@ -90,3 +96,29 @@ class ClassEnrollment(Base):
90
  removed_at = Column(DateTime, nullable=True)
91
 
92
  class_ = relationship("Class", back_populates="enrollments")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
  # Coach assignment
37
  coach_email = Column(String(255), nullable=True, index=True)
38
+
39
+ # Location - can be physical address or online meeting link
40
+ location = Column(Text, nullable=True)
41
 
42
  # Status + timestamps
43
  is_active = Column(Boolean, default=True)
 
55
  back_populates="class_",
56
  cascade="all, delete-orphan",
57
  )
58
+ # Many-to-many relationship with membership plans
59
+ membership_plans = relationship(
60
+ "ClassMembershipPlan",
61
+ back_populates="class_",
62
+ cascade="all, delete-orphan",
63
+ )
64
 
65
 
66
  class ClassEnrollment(Base):
 
96
  removed_at = Column(DateTime, nullable=True)
97
 
98
  class_ = relationship("Class", back_populates="enrollments")
99
+
100
+
101
+ class ClassMembershipPlan(Base):
102
+ """Many-to-many relationship between classes and membership plans."""
103
+ __tablename__ = "class_membership_plans"
104
+
105
+ id = Column(Integer, primary_key=True, index=True)
106
+
107
+ class_id = Column(
108
+ Integer,
109
+ ForeignKey("classes.id"),
110
+ nullable=False,
111
+ index=True,
112
+ )
113
+
114
+ membership_plan_id = Column(
115
+ Integer,
116
+ ForeignKey("membership_plans.id"),
117
+ nullable=False,
118
+ index=True,
119
+ )
120
+
121
+ created_at = Column(DateTime, default=datetime.utcnow)
122
+
123
+ # Relationships
124
+ class_ = relationship("Class", back_populates="membership_plans")