5.0 KiB
5.0 KiB
Eventify Command Center - API & Database Specification
This document outlines the required API endpoints and Database schema to support the current features of the Eventify Command Center (Admin Panel).
🏗 Database Schema
1. User Management (RBAC)
admin_users (Internal Staff)
| Column | Type | Description |
|---|---|---|
id |
UUID | Primary Key |
email |
VARCHAR | Unique email |
password_hash |
VARCHAR | Hashed password |
full_name |
VARCHAR | Display name |
role_id |
UUID | FK to roles |
status |
ENUM | 'Active', 'Inactive' |
last_active_at |
TIMESTAMP | Last login time |
roles
| Column | Type | Description |
|---|---|---|
id |
UUID | Primary Key |
name |
VARCHAR | e.g. "Super Admin", "Content Moderator" |
description |
TEXT | |
is_system |
BOOLEAN | If true, cannot be deleted |
permissions
| Column | Type | Description |
|---|---|---|
id |
VARCHAR | Primary Key (e.g. manage_partners) |
name |
VARCHAR | Human readable name |
group |
VARCHAR | e.g. "Finance", "Users" |
role_permissions (Junction Table)
| Column | Type | Description |
|---|---|---|
role_id |
UUID | FK to roles |
permission_id |
VARCHAR | FK to permissions |
2. Partner Management
partners (Organizations)
| Column | Type | Description |
|---|---|---|
id |
UUID | Primary Key |
name |
VARCHAR | Business Name |
type |
ENUM | 'Venue', 'Promoter', 'Sponsor', 'Vendor' |
status |
ENUM | 'Active', 'Invited', 'Suspended' |
logo_url |
VARCHAR | |
verification_status |
ENUM | 'Pending', 'Verified', 'Rejected' |
total_revenue |
DECIMAL | Cache field for performance |
open_balance |
DECIMAL | Amount owed to/by partner |
joined_at |
TIMESTAMP |
partner_contacts
| Column | Type | Description |
|---|---|---|
id |
UUID | Primary Key |
partner_id |
UUID | FK to partners |
name |
VARCHAR | |
email |
VARCHAR | |
phone |
VARCHAR | |
is_primary |
BOOLEAN |
partner_documents (KYC)
| Column | Type | Description |
|---|---|---|
id |
UUID | Primary Key |
partner_id |
UUID | FK to partners |
type |
ENUM | 'Company_Reg', 'PAN', 'Cheque', 'Other' |
file_url |
VARCHAR | S3/Blob URL |
status |
ENUM | 'Pending', 'Verified', 'Rejected' |
uploaded_at |
TIMESTAMP | |
verified_at |
TIMESTAMP |
3. End Users (B2C)
end_users
| Column | Type | Description |
|---|---|---|
id |
UUID | Primary Key |
email |
VARCHAR | |
phone |
VARCHAR | |
full_name |
VARCHAR | |
status |
ENUM | 'Active', 'Banned' |
total_spent |
DECIMAL | Lifetime value |
created_at |
TIMESTAMP |
4. Operations & Logs
audit_logs
| Column | Type | Description |
|---|---|---|
id |
UUID | Primary Key |
actor_id |
UUID | FK to admin_users |
action |
VARCHAR | e.g. "APPROVED_KYC" |
target_resource |
VARCHAR | e.g. "partner_123" |
details |
JSONB | Metadata about changes |
created_at |
TIMESTAMP |
notifications
| Column | Type | Description |
|---|---|---|
id |
UUID | Primary Key |
recipient_id |
UUID | FK to admin_users |
type |
ENUM | 'Critical', 'Info', 'Success' |
title |
VARCHAR | |
message |
TEXT | |
is_read |
BOOLEAN | |
created_at |
TIMESTAMP |
🔌 API Endpoints
Authentication
POST /api/v1/auth/login- Admin login (returns JWT)POST /api/v1/auth/logout- Invalidate sessionGET /api/v1/auth/me- Get current admin profile & permissions
Dashboard
GET /api/v1/dashboard/metrics- Aggregate stats (revenue, active partners, etc.)GET /api/v1/dashboard/revenue-chart- Data for the main revenue graphGET /api/v1/dashboard/activity- Recent system activity feed
Partner Management
GET /api/v1/partners- List partners (Supports filtering by status, type, search)POST /api/v1/partners- Invite/Create new partnerGET /api/v1/partners/:id- Get full partner profileGET /api/v1/partners/:id/documents- List KYC documentsPATCH /api/v1/partners/:id/status- Suspend/Activate partnerPOST /api/v1/partners/:id/kyc/review- Approve/Reject specific documents
User Management (Command Center)
- Internal Team
GET /api/v1/admin/users- List internal staffPOST /api/v1/admin/users- Create staff accountPATCH /api/v1/admin/users/:id/role- Assign roleDELETE /api/v1/admin/users/:id- Revoke access
- Roles & Permissions
GET /api/v1/admin/roles- List available rolesPUT /api/v1/admin/roles/:id/permissions- Update permission matrix for a role
- End Users
GET /api/v1/users- List B2C usersPOST /api/v1/users/:id/ban- Ban a userPOST /api/v1/users/:id/reset-2fa- Reset 2FA
Financials (Placeholder)
GET /api/v1/financials/entries- List ledger entriesPOST /api/v1/financials/payouts- Trigger batch payouts