feat: Souq native integration + auth simplification + CE-wide enhancements
Souq Marketplace: - Native souq pages: browse+filters, create listing, detail+seller profile, orders+chat - New API: reviews (POST), sellers/[id], upload (multipart), polar-checkout webhook - Listings API enhanced: minPrice, maxPrice, sortBy, deliveryDays filters - Seller workflow: start order, mark delivered, upload files, confirm delivery - Wallet: 5 Polar.sh FLH tiers, production checkout, mock fallback, success banner - Fix: order redirect /souq/history → /souq/orders Auth System: - Unified auth page, removed OAuth provider routing (2 files deleted) - Deleted oauth.ts (319 lines) — simplified auth chain - Streamlined login/register API routes Prisma Schema (+179 lines): - New models: Listing, Purchase, Review, Group/GroupMember - Gamification: DailyStreak, XpTransaction, Achievement, UserLevel - Learning: LearnCourse/Module/Enrollment/Certificate - Notifications, Referrals, Dhikr, PremiumBenefits Deleted legacy code: - src/app/api/marketplace/* (3 files) — replaced by /api/souq/* - src/app/api/files/[listingId]/route.ts — replaced by /api/souq/upload - src/app/api/seller/[sellerId]/route.ts — replaced by /api/souq/sellers/[id] Infrastructure: - Dockerfile: standalone output, Prisma runtime migration - docker-compose.yml: Polar env vars, healthcheck fix - docker-compose.staging.yml: staging on port 4014 - .gitea/workflows/ci.yml: CI pipeline
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
falah-mobile-staging:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: falah-mobile:staging
|
||||
ports:
|
||||
- "4014:3000"
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- HOSTNAME=0.0.0.0
|
||||
- NEXT_PUBLIC_APP_URL=https://falahos.my/mobile-staging
|
||||
- JWT_SECRET=${JWT_SECRET:-flh-staging-jwt-secret}
|
||||
- DATABASE_URL=file:/app/data/staging.db
|
||||
- LLM_API_KEY=${LLM_API_KEY:-}
|
||||
- LLM_BASE_URL=${LLM_BASE_URL:-}
|
||||
- LLM_MODEL=${LLM_MODEL:-qwen3.6-plus}
|
||||
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID:-}
|
||||
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET:-}
|
||||
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID:-}
|
||||
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET:-}
|
||||
# Polar.sh payments (optional — mock mode used when unset)
|
||||
- POLAR_ACCESS_TOKEN=${POLAR_ACCESS_TOKEN:-}
|
||||
- POLAR_FLH_500=${POLAR_FLH_500:-}
|
||||
- POLAR_FLH_1000=${POLAR_FLH_1000:-}
|
||||
- POLAR_FLH_5000=${POLAR_FLH_5000:-}
|
||||
- POLAR_FLH_10000=${POLAR_FLH_10000:-}
|
||||
- POLAR_FLH_50000=${POLAR_FLH_50000:-}
|
||||
- POLAR_WEBHOOK_SECRET=${POLAR_WEBHOOK_SECRET:-}
|
||||
volumes:
|
||||
- falah-mobile-staging-data:/app/data
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000/mobile/api/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
volumes:
|
||||
falah-mobile-staging-data:
|
||||
Reference in New Issue
Block a user