Skip to content

Admin Dashboard §10: Payments page #268

Description

@oduwoleeyinojuoluwa44

Backend for the Super Admin Dashboard's Payments page — Super Admin only, the whole page/routes/endpoints must 403 for Admin and Reviewer.

Blocked on open questions (don't block on them — build structure, leave data slots empty):

  • OQ-03: Payment provider not yet confirmed (affects status value mapping, proration/trial states)
  • OQ-04: Exact employer package tier names/prices/features above Free
  • OQ-05: Talent subscription price

Scope:

  • Stat cards (row of 4): Total Revenue, Active Employer Subscriptions (paid tiers only), Active Talent Subscriptions, Failed/Declined Payment Count
  • Revenue chart: line/stacked-bar, split Employer Packages vs Talent Subscriptions, Yearly/Monthly/Weekly/Daily toggle, empty state "Not enough revenue data yet."
  • Employer Packages table (incl. Free tier: $0, 2 offers included, no extra features)
  • Talent Subscriptions section: single paid tier unlocking unlimited retakes past free 3
  • Subscriptions table: Subscriber Name | Type | Package/Tier | Monthly Price | Status (Active/Past Due/Cancelled/Free) | Start Date | Next Billing Date — "Past Due" shows days left in 7-day grace period; grace expiry auto-reverts employer to Free (not suspension)
  • Transactions table: Subscriber Name | Type | Amount | Date | Status (Successful/Failed/Refunded) | Linked Subscription

Gate every endpoint with @Roles(UserRole.ADMIN) + @AdminTiers(AdminTier.SUPER_ADMIN) only (see #264).

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions