Replace the mock test-payment button with a real manual Swish flow where the user sends a Swish payment with the order ID as message and confirms via a button. Admin verifies Swish and processes manually. Backend - Rename OrderStatus LOOKUP_STARTED to PROCESSING (Swedish: Hanteras) - Update V5 migration CHECK constraint from lookup_started to processing - Rename OrderService.markAsPaid() to confirmPayment(), sets PROCESSING instead of PAID, stop hardcoding amountPaid - Add GET /api/payment/swish-info endpoint returning swish number and letter price from app.payment config - Permit /api/payment/swish-info without authentication - Update UpdateStatusRequest regex to accept processing - Update PaymentControllerTest for renamed method, new status, and public swish-info endpoint test Frontend - Rewrite PaymentRedirect.vue: Swish number, order ID as message, Jag har betalat button with confirmation dialog - Add fetchSwishInfo() to api/payment.ts - AdminPage: rename Skickade stat to Att göra (processing orders), highlight processing rows with admin__row--todo - OrdersPage: update status labels/badge classes for new flow - Refactor ApiError in client.ts to property declaration syntax - Exclude __tests__ from tsconfig.app.json and Docker builds Tests - Rewrite PaymentRedirect.spec.ts for Swish info, confirmation dialog, cancel flow, and processing status - Update OrdersPage.spec.ts with processing status test - Update AdminDashboard.spec.ts with Att göra stat and row highlight - Add amountPaid to ComposePage.spec.ts mock Config - Add SWISH_NUMBER to .env.example and docker-compose.yml
28 lines
827 B
Text
28 lines
827 B
Text
# BilHej Environment Variables
|
|
# Copy this file to .env and fill in your keys.
|
|
#
|
|
# cp .env.example .env
|
|
#
|
|
# Docker Compose reads .env from the project root automatically.
|
|
|
|
# ---------- PostgreSQL ----------
|
|
POSTGRES_DB=bilhej
|
|
POSTGRES_USER=bilhej
|
|
POSTGRES_PASSWORD=change_me
|
|
|
|
# ---------- JWT ----------
|
|
# Generate a secure random secret:
|
|
# openssl rand -hex 32
|
|
JWT_SECRET=change_me_to_a_random_64_char_string
|
|
|
|
# ---------- Stripe (Phase 1) ----------
|
|
# Test keys from Stripe Dashboard: https://dashboard.stripe.com/test/apikeys
|
|
STRIPE_SECRET_KEY=sk_test_...
|
|
# Webhook secret from stripe CLI: stripe listen --print-secret
|
|
STRIPE_WEBHOOK_SECRET=whsec_...
|
|
# Price ID from Stripe Dashboard: https://dashboard.stripe.com/test/products
|
|
STRIPE_PRICE_ID=price_...
|
|
|
|
# ---------- Swish (Phase 0) ----------
|
|
SWISH_NUMBER=0701234567
|
|
|