cfff74e2db
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
42 lines
1.4 KiB
YAML
42 lines
1.4 KiB
YAML
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:
|