feat: Phase 1 critical gaps — gamification API, Razorpay checkout, Google OAuth, notifications

- Fix gamification endpoints to use Node.js server (app.eventifyplus.com)
- Replace 6 mock gamification methods with real API calls (dashboard, leaderboard, shop, redeem, submit)
- Add booking models, service, payment service (Razorpay), checkout provider
- Add 3-step CheckoutScreen with Razorpay native modal integration
- Add Google OAuth login (Flutter + Django backend)
- Add full notifications system (Django model + 3 endpoints + Flutter UI)
- Register CheckoutProvider, NotificationProvider in main.dart MultiProvider
- Wire notification bell in HomeScreen app bar
- Add razorpay_flutter ^1.3.7 and google_sign_in ^6.2.2 packages
This commit is contained in:
2026-04-04 15:46:53 +05:30
parent bc12fe70aa
commit 8955febd00
24 changed files with 1663 additions and 164 deletions

View File

@@ -35,11 +35,28 @@ class ApiEndpoints {
static const String reviewHelpful = "$_reviewBase/helpful";
static const String reviewFlag = "$_reviewBase/flag";
// Gamification / Contributor Module (TechDocs v2)
static const String gamificationProfile = "$baseUrl/v1/user/gamification-profile/";
static const String leaderboard = "$baseUrl/v1/leaderboard/";
static const String shopItems = "$baseUrl/v1/shop/items/";
static const String shopRedeem = "$baseUrl/v1/shop/redeem/";
static const String contributeSubmit = "$baseUrl/v1/contributions/submit/";
static const String gradeContribution = "$baseUrl/v1/admin/contributions/"; // append {id}/grade/
// Node.js gamification server (same host as reviews)
static const String _nodeBase = "https://app.eventifyplus.com/api";
// Gamification / Contributor Module
static const String gamificationDashboard = "$_nodeBase/v1/gamification/dashboard";
static const String leaderboard = "$_nodeBase/v1/gamification/leaderboard";
static const String shopItems = "$_nodeBase/v1/shop/items";
static const String shopRedeem = "$_nodeBase/v1/shop/redeem";
static const String contributeSubmit = "$_nodeBase/v1/gamification/submit-event";
static const String gradeContribution = "$_nodeBase/v1/admin/contributions/"; // append {id}/grade/
// Bookings
static const String ticketMetaList = "$baseUrl/bookings/ticket-meta/list/";
static const String cartAdd = "$baseUrl/bookings/cart/add/";
static const String checkout = "$baseUrl/bookings/checkout/";
static const String checkIn = "$baseUrl/bookings/check-in/";
// Auth - Google OAuth
static const String googleLogin = "$baseUrl/user/google-login/";
// Notifications
static const String notificationList = "$baseUrl/notifications/list/";
static const String notificationMarkRead = "$baseUrl/notifications/mark-read/";
static const String notificationCount = "$baseUrl/notifications/count/";
}