Seth0330 commited on
Commit
0199291
·
verified ·
1 Parent(s): 04d60af

Update app/models/membership_invite.py

Browse files
Files changed (1) hide show
  1. app/models/membership_invite.py +19 -0
app/models/membership_invite.py CHANGED
@@ -1,9 +1,27 @@
1
  # app/models/membership_invite.py
2
  from datetime import datetime
 
3
  from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey
 
4
  from core.database import Base
5
 
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  class MembershipInvite(Base):
8
  __tablename__ = "membership_invites"
9
 
@@ -19,6 +37,7 @@ class MembershipInvite(Base):
19
  invited_by = Column(String(255), nullable=True) # Admin email/name
20
  invite_date = Column(DateTime, default=datetime.utcnow)
21
  completed_at = Column(DateTime, nullable=True)
 
22
  created_at = Column(DateTime, default=datetime.utcnow)
23
  updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
24
 
 
1
  # app/models/membership_invite.py
2
  from datetime import datetime
3
+ import json
4
  from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey
5
+ from sqlalchemy.types import TypeDecorator, TEXT
6
  from core.database import Base
7
 
8
 
9
+ class JSONEncodedDict(TypeDecorator):
10
+ """Represents an immutable structure as a json-encoded string."""
11
+ impl = TEXT
12
+ cache_ok = True
13
+
14
+ def process_bind_param(self, value, dialect):
15
+ if value is not None:
16
+ return json.dumps(value)
17
+ return None
18
+
19
+ def process_result_value(self, value, dialect):
20
+ if value is not None:
21
+ return json.loads(value)
22
+ return None
23
+
24
+
25
  class MembershipInvite(Base):
26
  __tablename__ = "membership_invites"
27
 
 
37
  invited_by = Column(String(255), nullable=True) # Admin email/name
38
  invite_date = Column(DateTime, default=datetime.utcnow)
39
  completed_at = Column(DateTime, nullable=True)
40
+ students_data = Column(JSONEncodedDict, nullable=True) # Store student data temporarily before payment
41
  created_at = Column(DateTime, default=datetime.utcnow)
42
  updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
43