diff --git a/SQL/site_data.sql b/SQL/site_data.sql index 65d722b..6dfbbd9 100644 --- a/SQL/site_data.sql +++ b/SQL/site_data.sql @@ -46,7 +46,8 @@ ALTER TABLE members ALTER COLUMN password TYPE VARCHAR(250); ALTER TABLE members ADD country VARCHAR(3); ALTER TABLE members ADD stripe_customer_id VARCHAR(100) ALTER TABLE members ADD profile_completed timestamp without time zone DEFAULT NULL; -ALTER TABLE members ADD option_name VARCHAR(100) REFERENCES subscription_options(option_name) +ALTER TABLE members ADD option_name VARCHAR(100) REFERENCES subscription_options(option_name); +ALTER TABLE members ADD next_billing timestamp without time zone; CREATE TABLE members_profile( id SERIAL, diff --git a/app/api/services/subscriptions.py b/app/api/services/subscriptions.py index 0defecc..f148476 100644 --- a/app/api/services/subscriptions.py +++ b/app/api/services/subscriptions.py @@ -268,9 +268,12 @@ class SubscriptionsService(BaseService): logger.info(f"HOOK payment_data ==>>>> {payment_data}") paymentAddResult = Payments.add_payment(payment_data["member_id"], payment_data["payment_uid"], payment_data["option_name"], payment_data["amount"], payment_data["option_type"], payment_data["next_billing_days"]) - logger.info(f"HOOK paymentAddResult ==>>>> {paymentAddResult}") + logger.info(f"HOOK paymentAddResult next_billing ==>>>> {paymentAddResult.next_billing}") + logger.info(f"HOOK paymentAddResult uid ==>>>> {paymentAddResult.uid}") + logger.info(f"HOOK paymentAddResult payment_uid ==>>>> {paymentAddResult.payment_uid}") if paymentAddResult: Members.set_user_option_name(payment_data["member_id"], payment_data["option_name"]) + Members.set_user_next_billing(payment_data["member_id"], paymentAddResult.next_billing) # Simulate processing response_data = { diff --git a/app/models/members.py b/app/models/members.py index e2d0ab7..9a259bd 100644 --- a/app/models/members.py +++ b/app/models/members.py @@ -129,6 +129,17 @@ class Members(db.Model): return option_name + @classmethod + def set_user_next_billing(cls, member_id, next_billing): + member = cls.query.filter_by(id=member_id).first() + if not member: + raise ValueError(f"Member with ID {member_id} does not exist.") + # Update stripe_customer_id + member.next_billing = next_billing + + return next_billing + + @classmethod def get_all_member(cls, email=None, username=None, page=1, limit=20):