Project

General

Profile

Actions

Task #170

open

Payment / Subscription Module

Added by Dana Basheer about 2 months ago.

Status:
New
Priority:
High
Assignee:
Start date:
03/13/2026
Due date:
03/13/2026 (53 days late)
% Done:

0%

Estimated time:

Description

The Payment Module allows users to purchase membership plans to access premium features of the matrimony platform.

Premium features may include:

  • Viewing contact details
  • Unlimited profile views
  • Sending unlimited interests
  • Messaging access

Users must complete payment to activate a membership plan.

Table

subscription_plan_master

  • id INT PK Unique plan ID
  • plan_name VARCHAR(100) — Name of the plan
  • plan_duration_days INT — Plan validity in days
  • price DECIMAL(10,2) — Plan price
  • features TEXT — Plan benefits
  • is_active BOOLEAN — Status
  • created_at DATETIME — Created timestamp
  • updated_at DATETIME — Updated timestamp

user_subscription_table

  • id INT PK Subscription ID
  • profile_id INT FK User profile
  • plan_id INT FK Subscription plan
  • payment_id VARCHAR(200) — Payment gateway transaction ID
  • payment_method VARCHAR(50) — UPI / Card / Netbanking
  • payment_status VARCHAR(50) — Success / Failed / Pending
  • amount_paid DECIMAL(10,2) — Amount paid
  • start_date DATETIME — Plan start date
  • expiry_date DATETIME — Plan expiry date
  • is_active BOOLEAN — Subscription status
  • created_at DATETIME — Created timestamp

Validations

subscription_plan_master

plan_name

  • Mandatory
  • Minimum 3 characters
  • Must be unique

plan_duration_days

  • Mandatory
  • Must be positive integer

Price

  • Mandatory
  • Must be greater than 0

features

  • Optional
  • Max 1000 characters

is_active

  • Default value: true

Inactive plans should not appear in frontend.

user_subscription_table

profile_id

  • Mandatory
  • Must exist in registration_table
  • Must be active user

plan_id

  • Mandatory
  • Must exist in subscription_plan_master
  • Must be active plan

payment_id

  • Mandatory when payment success
  • Must be unique

payment_status

Allowed values:

  • Pending
  • Success
  • Failed

amount_paid

  • Must match plan price

start_date

  • Auto generated after payment success

expiry_date

Calculation:

  • expiry_date = start_date + plan_duration_days

is_active

  • Default true after successful payment

No data to display

Actions

Also available in: Atom PDF