Backend: Rewrote EventListAPI to query per-type with DB-level LIMIT instead of loading all 734 events into memory. Added slim serializer (32KB vs 154KB). Added DB indexes on event_type_id and pincode. Frontend: Category chips now filter locally from _allEvents (instant, no API call). Top Events and category sections always show all types regardless of selected category. Added TTL caching for event types (30min) and events (5min). Reduced API timeout from 30s to 10s. Added memCacheHeight to all CachedNetworkImage widgets. Batched setState calls from 5 to 2 during startup. Cached _eventDates getter. Switched baseUrl to em.eventifyplus.com (Django via Nginx+SSL). Added initialEvent param to LearnMoreScreen for instant detail views. Resolved relative media URLs for category icons. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
39 lines
2.1 KiB
Dart
39 lines
2.1 KiB
Dart
// lib/core/api/api_endpoints.dart
|
|
class ApiEndpoints {
|
|
// Change this to your desired backend base URL (local or UAT)
|
|
// For local Django dev use: "http://127.0.0.1:8000/api"
|
|
// For UAT: "https://uat.eventifyplus.com/api"
|
|
static const String baseUrl = "https://em.eventifyplus.com/api";
|
|
|
|
/// Base URL for media files (images, icons uploaded via Django admin).
|
|
/// Relative paths like `/media/...` are resolved against this.
|
|
static const String mediaBaseUrl = "https://em.eventifyplus.com";
|
|
|
|
// Auth
|
|
static const String register = "$baseUrl/user/register/";
|
|
static const String login = "$baseUrl/user/login/";
|
|
static const String logout = "$baseUrl/user/logout/";
|
|
static const String status = "$baseUrl/user/status/";
|
|
|
|
// Events
|
|
static const String eventTypes = "$baseUrl/events/type-list/"; // list of event types
|
|
static const String eventsByPincode = "$baseUrl/events/pincode-events/"; // pincode-events
|
|
static const String eventDetails = "$baseUrl/events/event-details/"; // event-details
|
|
static const String eventImages = "$baseUrl/events/event-images/"; // event-images
|
|
static const String eventsByCategory = "$baseUrl/events/events-by-category/";
|
|
static const String eventsByMonth = "$baseUrl/events/events-by-month-year/";
|
|
|
|
// Bookings
|
|
// static const String bookEvent = "$baseUrl/events/book-event/";
|
|
// static const String userSuccessBookings = "$baseUrl/events/event/user-success-bookings/";
|
|
// static const String userCancelledBookings = "$baseUrl/events/event/user-cancelled-bookings/";
|
|
|
|
// 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/
|
|
}
|