NEXT_PUBLIC_SUPABASE_URL=https://dfhpzubflqgvdrbhpmfz.supabase.co
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=sb_publishable_AUGU-9Qwg57CMG7HfJPsHw_sxqgwYVI
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImRmaHB6dWJmbHFndmRyYmhwbWZ6Iiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc4NzAzNDc2MiwiZXhwIjoyMTAyNjEwNzYyfQ.nU-p-GGy9KAYVWtTLv_-gdYjXEAp4YPuiDHOWMVDRAg

REDIS_URL=https://trusting-hippo-112395.upstash.io
REDIS_TOKEN=gQAAAAAAAbcLAAIgcDJiYmMyZjZlNGYyYTE0YzhhODJlNmU3ZjY4NTExYWVkOQ

# Payment - VNPay
VNPAY_TMN_CODE=
VNPAY_HASH_SECRET=
VNPAY_PAYMENT_URL=https://sandbox.vnpayment.vn/paymentv2/vpcpay.html
VNPAY_RETURN_URL=http://localhost:3000/api/payments/vnpay/return
VNPAY_IPN_URL=http://localhost:3000/api/payments/vnpay/ipn

# Payment - MoMo Business
MOMO_PARTNER_CODE=
MOMO_ACCESS_KEY=
MOMO_SECRET_KEY=
MOMO_ENDPOINT=https://test-payment.momo.vn/v2/gateway/api/create
MOMO_RETURN_URL=http://localhost:3000/api/payments/momo/return
MOMO_IPN_URL=http://localhost:3000/api/payments/momo/ipn

CLOUDINARY_URL=cloudinary://865273744448921:tRB1zCMz-CUq6oi67Vnucdfk_hg@sqhqa17e

RESEND_API_KEY=re_3T1cx9X1_6sHeTxXRufqZ3AGNXqRe6xBs
RESEND_ADMIN_EMAIL=toannguyen041214@gmail.com
RESEND_FROM_EMAIL=SuaEmbe <onboarding@resend.dev>

# Search - Meilisearch / Elasticsearch
SEARCH_PROVIDER=meilisearch
MEILISEARCH_HOST=http://localhost:7700
MEILISEARCH_API_KEY=
ELASTICSEARCH_NODE=
ELASTICSEARCH_API_KEY=

# Push Notification - Firebase FCM
NEXT_PUBLIC_FIREBASE_API_KEY=AIzaSyBfJSPvk9hkQXeNS4GbI9tjqvRmJ-Somgk
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=suaembe-a39ce.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=suaembe-a39ce
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=suaembe-a39ce.firebasestorage.app
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=369981034415
NEXT_PUBLIC_FIREBASE_APP_ID=1:369981034415:web:7be6539a9dc964a2a3a95a
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=G-6WZCLHP8P3
NEXT_PUBLIC_FIREBASE_VAPID_KEY=BC2mQfOmOjgn_ZvYNeIPEQGytyx08zqCGeHvx0ZbjzJ7o2kF6CaKQAjsgglR2csCs-CKBWOMo5f1j7UKU1mW2J4
# Service account JSON tải từ Firebase Console > Project settings > Service
# accounts > Generate new private key — dán nguyên JSON thành 1 dòng. Thiếu
# biến này thì route gửi push (/api/cron/dispatch-notifications) trả 503,
# không gọi Firebase Admin.
FIREBASE_SERVICE_ACCOUNT='{"type": "service_account","project_id": "suaembe-a39ce","private_key_id": "dcab13015711bc4775b35618ea518367d0647bc7","private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDJ7YUihIoUHLT+\nemRQ4k6dxmYkphuqlieXuJyIDd6+HPYeSEclBV4USYGues6dfJ5c2tuNpXMTZnbu\nyHZWvXy8pVHdhrW3TQj/Lay0Ou+DznGYf/9R+QUpoCuLNRa1kJaSH4yDlWIzmRAf\nGmQAfhgKNeY3rZ1/ByzWsms44D8HIh6NTbibE4txopy4/iLXE8ZAg4vLgceLcbRs\ngoteBu0aB2K/J5ak56i/yYQuCYJuQFGyWRTq8uKnorvj49/434luvNxluH053VMo\nf2XWb0T0zrEGm1uMhAH/ATzNpUxOeAeALaM8kUZkBF4tQhsn0seaDVvFIQc7BpCx\nVffh9YBTAgMBAAECggEACvIZm+fkVjfCJeM7idjimxHUmpr4d/RAvCwxK/zYfKS0\nQKr5VEvosB/V7D/S8F1/dhgU+6YiyUPuIX5zT7tgxhcOC3yQYBnIaZCvwmtJbXMk\n3Dff/rEJcxqwEZE0pG3sg4o7Qyy3UIW1BoKXNiGfqvoF+zGpjme0qgSs5D3fnMLH\nj4X0wf6Kk4P8md1hf4+xSgZDecF+apWN4awI+NgrwUk03wY1ckaYZJafvMGWsqoq\nCgiJ3VQS0+yRIKdPUZG5G6VuZHs3+c9OLl58ujKrcRLWaVJnoA+HUU2VI6KM0UMT\nsWTDV90vIPd3+Q2AyuveLlJzPiDPwloj/PXHh4sqrQKBgQDmLoFwhwQl+dx2twyl\nVQB78L2z+q1nBHO3LpP1kfR6Mbf8zRr9FBmpKLsLCN/LD1ja+SW97695Np5gDO9Z\nbrh9rKLeBMTwjpApZdMV4jQSAJgnCe1mA6ekZEW4PKaY9B/37Qh3ZSvDt4L7dnlh\nh2orLmOI/HyAaeNEQz8m88FjNwKBgQDgk7nr6ius8v7RF+MyIrAJJujv60dNrXB2\nSicJCGnjixnPETXSR4z8g6J3ByllM61Li0qfhXuJb+hb5VYG/665zBRMSLHLyxiz\n4/1WyVygLqvSJUN9zmO062m7UVnBGCBuqaG2lmUK5WQrOYrMjF0lUxSvwYppjEo5\nN+EYP56RxQKBgQCM/s+q7glMedDhpx7H51l0kfKh3Ft7Tu7StmVLdywZ7XqWD80I\nWNefFqP8DmOHLs9u0k6cGcWSqjI5A7NZRMkdsjHRbXp1H96OfSDftr/Ohy6sOxh/\n9J0rxYAvandiGae7ZiZZfE9ig3ZoMhoH87rE2JV/w6k/v5zGo6p7YbSD4QKBgCSF\nobzODmBH/EzA17/1iC9U1pj96FCnnhx+nq6HYcERhBb6s4gI/tKqDafR0FeW+d3J\nP0+GA7ssKduYBk+JET9CAyMMx21fEBthPnf4s0mRjXvVd45kHC72AfHmnvQaGlwk\n1hm9h50oBQxKhVoSkataQYj7rqjPmdqITeEFp6IJAoGAYIRy0q2hhwDVn/q5g50g\nEXrQdKGoveOOt5q7a8Ox6tQ18tmdgNhZWC8EwV8TdcfXYFqn1wvs9ow0e0EL5Hfi\nrTpgZfGhiOeNEDW+6CWZq6Z4gjO0x1ms3b5/aHwMQjo4Aai3bpnW35KhPPbdpWLG\nezIbA9fOBJYF25cWD8Q0o/Q=\n-----END PRIVATE KEY-----\n","client_email": "firebase-adminsdk-fbsvc@suaembe-a39ce.iam.gserviceaccount.com","client_id": "107274902659055432640","auth_uri": "https://accounts.google.com/o/oauth2/auth","token_uri": "https://oauth2.googleapis.com/token","auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-fbsvc%40suaembe-a39ce.iam.gserviceaccount.com","universe_domain": "googleapis.com"}'

# Bearer secret để xác thực job cron gọi POST /api/cron/dispatch-notifications
# từ bên ngoài (Vercel Cron/scheduler khác) — tự sinh sẵn, không cần xin từ
# đâu, chỉ cần khớp giữa .env và cấu hình scheduler.
CRON_SECRET=7d7544d696dac462a93a83a27c7cc76671128a582f470f6fa27146bb1b193595

# AI - Claude
ANTHROPIC_API_KEY=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
CLAUDE_MODEL=claude-opus-5
CLAUDE_MAX_TOKENS=900
AI_MAX_CANDIDATES=15
AI_RATE_LIMIT_PER_MINUTE=5


# Auth - JWT
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
JWT_ACCESS_EXPIRES_IN=15m
JWT_REFRESH_EXPIRES_IN=30d
PASSWORD_SALT_ROUNDS=12


NEXT_PUBLIC_SITE_URL=https://suaembe.com
