# ── ByteLyst Ecosystem Environment Variables ─────────────────────
# Copy to .env.ecosystem and fill in real values.
# Used by: docker compose -f docker-compose.ecosystem.yml --env-file .env.ecosystem up

# ── Cosmos DB (local emulator) ───────────────────────────────────
COSMOS_ENDPOINT=http://cosmos-emulator:8081
# Cosmos emulator uses a well-known key. Copy it from:
# https://learn.microsoft.com/en-us/azure/cosmos-db/emulator#authentication
# It starts with: C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDu...
COSMOS_KEY=
COSMOS_DATABASE=bytelyst

# ── Auth ─────────────────────────────────────────────────────────
JWT_SECRET=change-me-ecosystem-jwt-secret-at-least-32-chars
RATE_LIMIT_STORE_MODE=datastore

# ── Azure Blob Storage (Azurite emulator) ────────────────────────
STORAGE_PROVIDER=azure
# Azurite uses a well-known connection string. Copy it from:
# https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite#well-known-storage-account-and-key
# Format: DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02x...;BlobEndpoint=http://azurite:10000/devstoreaccount1;
AZURE_BLOB_CONNECTION_STRING=
AZURE_BLOB_ACCOUNT_NAME=devstoreaccount1
# Same well-known Azurite key (starts with: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1...)
AZURE_BLOB_ACCOUNT_KEY=
AZURE_BLOB_PUBLIC_ENDPOINT=http://localhost:10000/devstoreaccount1

# ── Email (Mailpit sandbox) ──────────────────────────────────────
EMAIL_PROVIDER=smtp
EMAIL_FROM_ADDRESS=noreply@bytelyst.local
EMAIL_FROM_NAME=ByteLyst
SMTP_HOST=mailpit
SMTP_PORT=1025
SMTP_SECURE=false
SMTP_USER=
SMTP_PASSWORD=

# ── Stripe (test keys — replace with your own) ──────────────────
STRIPE_SECRET_KEY=sk_test_REPLACE_ME
STRIPE_WEBHOOK_SECRET=whsec_REPLACE_ME
STRIPE_PRICE_PRO=price_REPLACE_ME
STRIPE_PRICE_ENTERPRISE=price_REPLACE_ME

# ── Extraction Service ───────────────────────────────────────────
PYTHON_SIDECAR_URL=http://localhost:4006
DEFAULT_MODEL_ID=gemini-2.5-flash
GEMINI_API_KEY=REPLACE_ME
EXTRACTION_QUEUE_BACKEND=file
EXTRACTION_QUEUE_FILE=.data/extraction-jobs.json

# ── Cross-service URLs (resolved via Docker service names) ───────
PLATFORM_SERVICE_URL=http://platform-service:4003
EXTRACTION_SERVICE_URL=http://extraction-service:4005
MCP_SERVER_URL=http://mcp-server:4007

# ── Datastore provider ───────────────────────────────────────────
# Use 'cosmos' for emulator, 'memory' for in-memory (tests)
DB_PROVIDER=cosmos

# ── Telemetry ────────────────────────────────────────────────────
TELEMETRY_ENABLED=true

# ── Event Bus ────────────────────────────────────────────────────
EVENT_BUS_BACKEND=file
EVENT_BUS_FILE=.data/platform-events.json

# ── Field Encryption ─────────────────────────────────────────────
FIELD_ENCRYPT_KEY_PROVIDER=memory

# ── Product Identity ─────────────────────────────────────────────
DEFAULT_PRODUCT_ID=lysnrai

# ── Runtime environment ─────────────────────────────────────────
NODE_ENV=production

# ── CORS (allow all origins for dev/test — restrict in production) ──
CORS_ORIGIN=*

# ── Webhooks (optional) ─────────────────────────────────────────
WEBHOOK_INVITATION_REDEEMED_URL=
WEBHOOK_REFERRAL_STATUS_URL=
WEBHOOK_WAITLIST_JOINED_URL=

# ── Notification channels (optional) ────────────────────────────
TELEGRAM_BOT_TOKEN=
TELEGRAM_DEFAULT_CHAT_ID=
SLACK_WEBHOOK_URL=
SLACK_DEFAULT_CHANNEL=
