Seth0330 commited on
Commit
ae5e54e
·
verified ·
1 Parent(s): 7e645ff

Create membership_request.py

Browse files
Files changed (1) hide show
  1. app/models/membership_request.py +26 -0
app/models/membership_request.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # app/models/membership_request.py
2
+ from datetime import datetime, date
3
+ from sqlalchemy import Column, Integer, String, Date, DateTime, ForeignKey, Text
4
+ from core.database import Base
5
+ from sqlalchemy.orm import relationship
6
+
7
+
8
+ class MembershipRequest(Base):
9
+ __tablename__ = "membership_requests"
10
+
11
+ id = Column(Integer, primary_key=True, index=True)
12
+ membership_id = Column(Integer, ForeignKey("memberships.id"), nullable=False)
13
+ request_type = Column(String(50), nullable=False) # "pause" or "cancel"
14
+ status = Column(String(50), default="pending") # pending, approved, rejected, withdrawn
15
+ requested_at = Column(DateTime, default=datetime.utcnow)
16
+ requested_by = Column(String(255), nullable=False) # user_email
17
+ approved_at = Column(DateTime, nullable=True)
18
+ approved_by = Column(String(255), nullable=True) # admin email/name
19
+ rejected_at = Column(DateTime, nullable=True)
20
+ rejected_by = Column(String(255), nullable=True)
21
+ withdrawn_at = Column(DateTime, nullable=True)
22
+ notes = Column(Text, nullable=True) # Admin notes for approval/rejection
23
+
24
+ # Relationship to membership
25
+ membership = relationship("Membership", backref="requests")
26
+