Seth0330 commited on
Commit
d8750a2
·
verified ·
1 Parent(s): 1ada91f

Update app/services/class_service.py

Browse files
Files changed (1) hide show
  1. app/services/class_service.py +39 -1
app/services/class_service.py CHANGED
@@ -4,8 +4,9 @@ from typing import List, Optional, Iterable, Tuple
4
 
5
  from sqlalchemy.orm import Session
6
 
7
- from models.class_ import Class, ClassEnrollment
8
  from models.membership import Membership
 
9
  from schemas.class_ import (
10
  ClassCreate,
11
  ClassUpdate,
@@ -145,10 +146,27 @@ def create_class(db: Session, class_in: ClassCreate) -> Class:
145
  max_students=class_in.max_students,
146
  is_active=getattr(class_in, "is_active", True),
147
  coach_email=getattr(class_in, "coach_email", None),
 
148
  )
149
  db.add(db_class)
150
  db.commit()
151
  db.refresh(db_class)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  return db_class
153
 
154
 
@@ -191,6 +209,26 @@ def update_class(db: Session, class_id: int, class_in: ClassUpdate) -> Optional[
191
  db_class.is_active = class_in.is_active
192
  if hasattr(class_in, "coach_email") and class_in.coach_email is not None:
193
  db_class.coach_email = class_in.coach_email
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
 
195
  db.commit()
196
  db.refresh(db_class)
 
4
 
5
  from sqlalchemy.orm import Session
6
 
7
+ from models.class_ import Class, ClassEnrollment, ClassMembershipPlan
8
  from models.membership import Membership
9
+ from models.membership_plan import MembershipPlan
10
  from schemas.class_ import (
11
  ClassCreate,
12
  ClassUpdate,
 
146
  max_students=class_in.max_students,
147
  is_active=getattr(class_in, "is_active", True),
148
  coach_email=getattr(class_in, "coach_email", None),
149
+ location=getattr(class_in, "location", None),
150
  )
151
  db.add(db_class)
152
  db.commit()
153
  db.refresh(db_class)
154
+
155
+ # Handle membership plan associations
156
+ membership_plan_ids = getattr(class_in, "membership_plan_ids", [])
157
+ if membership_plan_ids:
158
+ for plan_id in membership_plan_ids:
159
+ # Verify plan exists
160
+ plan = db.query(MembershipPlan).filter(MembershipPlan.id == plan_id).first()
161
+ if plan:
162
+ class_plan = ClassMembershipPlan(
163
+ class_id=db_class.id,
164
+ membership_plan_id=plan_id,
165
+ )
166
+ db.add(class_plan)
167
+ db.commit()
168
+
169
+ db.refresh(db_class)
170
  return db_class
171
 
172
 
 
209
  db_class.is_active = class_in.is_active
210
  if hasattr(class_in, "coach_email") and class_in.coach_email is not None:
211
  db_class.coach_email = class_in.coach_email
212
+ if hasattr(class_in, "location"):
213
+ db_class.location = class_in.location
214
+
215
+ # Handle membership plan associations
216
+ if hasattr(class_in, "membership_plan_ids") and class_in.membership_plan_ids is not None:
217
+ # Remove existing associations
218
+ db.query(ClassMembershipPlan).filter(
219
+ ClassMembershipPlan.class_id == class_id
220
+ ).delete()
221
+
222
+ # Add new associations
223
+ for plan_id in class_in.membership_plan_ids:
224
+ # Verify plan exists
225
+ plan = db.query(MembershipPlan).filter(MembershipPlan.id == plan_id).first()
226
+ if plan:
227
+ class_plan = ClassMembershipPlan(
228
+ class_id=class_id,
229
+ membership_plan_id=plan_id,
230
+ )
231
+ db.add(class_plan)
232
 
233
  db.commit()
234
  db.refresh(db_class)