feat(FN-343): remove lingering iyzico references after Stripe migration (+1 more)
Commits merged: - chore(FN-343): remove lingering iyzico references from docs, config, and scripts - feat(FN-343): remove lingering iyzico references after Stripe migration Files changed: CLAUDE.md | 10 +++++----- README.md | 2 +- apps/api/src/database/schema/core.ts | 1 + apps/web/src/messages/en.json | 1 - apps/web/src/messages/tr.json | 1 - apps/web/src/routes/dashboard/billing.tsx | 6 +++--- docker-compose.coolify.yml | 5 ++--- docs/INDEX.md | 27 ++++++++++++------------- knowledge.md | 30 ++++++++++++++-------------- packages/shared/src/constants/error-codes.ts | 1 - packages/shared/src/index.ts | 1 - packages/shared/src/types/payment.ts | 12 +---------- scripts/fn342-pw-verify.mjs | 2 +- scripts/validate-env.sh | 3 +-- 14 files changed, 43 insertions(+), 59 deletions(-) Fusion-Task-Id: FN-343
This commit is contained in:
@@ -74,7 +74,7 @@ Generated: 2026-03-02
|
||||
| **Database** | PostgreSQL 17, Drizzle ORM 0.41 |
|
||||
| **Cache** | Redis 7.4, ioredis |
|
||||
| **Auth** | Better Auth 1.2 (email/password + Google OAuth) |
|
||||
| **Payments** | Iyzico (card), EFT (bank transfer with receipt upload) |
|
||||
| **Payments** | Stripe (card), EFT (bank transfer with receipt upload) |
|
||||
| **Storage** | MinIO (S3-compatible) |
|
||||
| **Jobs** | BullMQ (Redis-backed queues) |
|
||||
| **Email** | Postal (transactional email) |
|
||||
@@ -103,7 +103,7 @@ sase.tr/
|
||||
│ │ │ ├── brands/ # Brand CRUD
|
||||
│ │ │ ├── plans/ # Pricing plan CRUD
|
||||
│ │ │ ├── subscriptions/ # Subscription lifecycle
|
||||
│ │ │ ├── payments/ # Iyzico + EFT payment processing
|
||||
│ │ │ ├── payments/ # Stripe + EFT payment processing
|
||||
│ │ │ ├── referrals/ # Referral program
|
||||
│ │ │ ├── vehicles/ # VIN decoding + vehicle history
|
||||
│ │ │ ├── categories/ # Parts category tree
|
||||
@@ -192,7 +192,7 @@ sase.tr/
|
||||
| **BrandsModule** | module, service, controller, spec | Brand CRUD (cached, admin-managed) |
|
||||
| **PlansModule** | module, service, controller, spec | Pricing plan CRUD (cached, admin-managed) |
|
||||
| **SubscriptionsModule** | module, service, controller, spec | Create, activate, cancel, resume, extend subscriptions |
|
||||
| **PaymentsModule** | module, service, controller, spec | Iyzico card payments, EFT with receipt upload, admin approval |
|
||||
| **PaymentsModule** | module, service, controller, spec | Stripe card payments, EFT with receipt upload, admin approval |
|
||||
| **ReferralsModule** | module, service, controller, spec | Referral code generation, application, tier-based rewards |
|
||||
| **VehiclesModule** | module, service, controller, spec | VIN decode (multi-source fallback), vehicle history, brand access check |
|
||||
| **CategoriesModule** | module, service, controller, spec | Hierarchical category tree, schema pictures |
|
||||
@@ -244,7 +244,7 @@ sase.tr/
|
||||
| **PartsCatalogs** | REST API | `parts-catalogs/` | Multi-brand catalog API. Files: service, auth-service, module, types. Supports fetchGroups, fetchParts with parameterized car queries |
|
||||
| **EMEX** | Browser scraper | `emex/` | Playwright-based (emexdwc.ae), async via BullMQ. Files: service, browser, mapper, types |
|
||||
| **VIN-API** | REST API | `vin-api/` | NHTSA VIN decoder (last-resort fallback) |
|
||||
| **Iyzico** | Payment API | — | Turkish payment processor for card payments |
|
||||
| **Stripe** | Payment API | — | Global payment processor for card payments |
|
||||
| **MinIO** | S3 API | — | Receipt uploads, schema images |
|
||||
|
||||
### Database Schema
|
||||
@@ -291,8 +291,8 @@ userBrands (junction)
|
||||
|
||||
payments
|
||||
├── id (uuid, PK), userId → users, subscriptionId → userSubscriptions
|
||||
├── amount, currency, method (iyzico/eft), status (pending/completed/failed/refunded)
|
||||
├── iyzicoPaymentId, eftReceiptUrl, adminNote
|
||||
├── amount, currency, method (stripe/eft), status (pending/completed/failed/refunded)
|
||||
├── stripePaymentIntentId, eftReceiptUrl, adminNote
|
||||
└── Indexes: userId, status
|
||||
|
||||
vehicles
|
||||
@@ -467,8 +467,8 @@ Instrumentation: Express, HTTP, ioredis, NestJS Core, BullMQ, Drizzle ORM
|
||||
#### Payments
|
||||
| Method | Path | Auth | Description |
|
||||
|--------|------|------|-------------|
|
||||
| `POST` | `/api/payments/iyzico/initialize` | User | Start Iyzico card payment |
|
||||
| `POST` | `/api/payments/iyzico/callback` | Public | Iyzico webhook callback |
|
||||
| `POST` | `/api/payments/stripe/checkout` | User | Start Stripe card payment |
|
||||
| `POST` | `/api/payments/stripe/webhook` | Public | Stripe webhook callback |
|
||||
| `POST` | `/api/payments/eft` | User | Create EFT payment |
|
||||
| `POST` | `/api/payments/eft/:id/receipt` | User | Upload EFT receipt (PNG/JPG/PDF, 5MB max) |
|
||||
| `PATCH` | `/api/payments/eft/:id/approve` | Admin | Approve EFT payment |
|
||||
@@ -601,7 +601,7 @@ Flow:
|
||||
| `/dashboard/search` | `routes/dashboard/search.tsx` | VIN Search — main VIN decoder input |
|
||||
| `/dashboard/history` | `routes/dashboard/history.tsx` | Past VIN decode searches |
|
||||
| `/dashboard/subscription` | `routes/dashboard/subscription/index.tsx` | Plan selection & brand picker |
|
||||
| `/dashboard/subscription/pay` | `routes/dashboard/subscription/pay.tsx` | Card (Iyzico) or EFT payment |
|
||||
| `/dashboard/subscription/pay` | `routes/dashboard/subscription/pay.tsx` | Card (Stripe) or EFT payment |
|
||||
| `/dashboard/billing` | `routes/dashboard/billing.tsx` | Payment history & receipts |
|
||||
| `/dashboard/settings` | `routes/dashboard/settings.tsx` | Profile, Security, Connections, Referral, Account, Changelog tabs |
|
||||
| `/dashboard/vehicles/$id` | `routes/dashboard/vehicles_/$id/index.tsx` | Vehicle details |
|
||||
@@ -705,7 +705,7 @@ Flow:
|
||||
|
||||
| Directory | Exports |
|
||||
|-----------|---------|
|
||||
| `types/` | User, UserProfile, UserSubscriptionSummary, Vehicle, VinDecodeResult, CategoryNode, VehicleSource, Brand, Plan, Subscription, UserBrand, CreateSubscriptionInput, SubscriptionStatus, Payment, PaymentMethod, PaymentStatus, IyzicoInitializeInput, EftPaymentInput, Part, PartSource, PartSearchResult, Category, CategoryWithSchema, SchemaPic, Hotspot, ApiResponse, ApiError, PaginationMeta, PaginationInput, PaginatedResult, ChangelogEntry, CreateChangelogEntry, UpdateChangelogEntry, ChangelogChangeType |
|
||||
| `types/` | User, UserProfile, UserSubscriptionSummary, Vehicle, VinDecodeResult, CategoryNode, VehicleSource, Brand, Plan, Subscription, UserBrand, CreateSubscriptionInput, SubscriptionStatus, Payment, PaymentMethod, PaymentStatus, EftPaymentInput, Part, PartSource, PartSearchResult, Category, CategoryWithSchema, SchemaPic, Hotspot, ApiResponse, ApiError, PaginationMeta, PaginationInput, PaginatedResult, ChangelogEntry, CreateChangelogEntry, UpdateChangelogEntry, ChangelogChangeType |
|
||||
| `schemas/` | loginSchema, registerSchema, forgotPasswordSchema, resetPasswordSchema, vinSchema, paginationSchema, changelogEntrySchema, createChangelogEntrySchema, updateChangelogEntrySchema, changelogChangeTypeEnum (Zod) |
|
||||
| `constants/` | ERROR_CODES (30+, prefixed AUTH/VIN/SUB/PAY), PLANS (Single/Double/Triple/Full), REFERRAL_REWARDS (Tier 1: 3→7d, Tier 2: 5→30d), VIN_REGEX, EMAIL_REGEX, OEM_CODE_REGEX, CURRENCY |
|
||||
| `utils/` | VIN validator (check digit, WMI extraction, model year decode), currency (formatTRY, kurus↔lira), formatters (VIN, date, datetime, Turkish slug, referral code) |
|
||||
@@ -715,7 +715,7 @@ Flow:
|
||||
### @sase/config (`packages/config/src/index.ts`)
|
||||
|
||||
Zod env schema exporting `envSchema`, `Env` type, `validateEnv()`.
|
||||
Groups: DATABASE_URL, REDIS_*, BETTER_AUTH_*, GOOGLE_*, MINIO_*, CORS_ORIGIN, IYZICO_*, PL24_*, EMEX_*, ML_PREDICTION_ENABLED, POSTAL_*, OTEL_*
|
||||
Groups: DATABASE_URL, REDIS_*, BETTER_AUTH_*, GOOGLE_*, MINIO_*, CORS_ORIGIN, STRIPE_*, PL24_*, EMEX_*, ML_PREDICTION_ENABLED, POSTAL_*, OTEL_*
|
||||
|
||||
### @sase/ui (`packages/ui/src/`)
|
||||
|
||||
@@ -827,9 +827,8 @@ Dependencies: Radix UI (accordion, dialog, dropdown-menu, label, popover, select
|
||||
| `MINIO_USE_SSL` | false | HTTPS for MinIO |
|
||||
| `GOOGLE_CLIENT_ID` | — | Google OAuth client ID |
|
||||
| `GOOGLE_CLIENT_SECRET` | — | Google OAuth secret |
|
||||
| `IYZICO_API_KEY` | — | Iyzico payment API key |
|
||||
| `IYZICO_SECRET_KEY` | — | Iyzico payment secret |
|
||||
| `IYZICO_BASE_URL` | — | Iyzico API base URL |
|
||||
| `STRIPE_SECRET_KEY` | — | Stripe payment secret key |
|
||||
| `STRIPE_PUBLISHABLE_KEY` | — | Stripe publishable key |
|
||||
| `PL24_BASE_URL` | — | PL24 catalog API URL |
|
||||
| `PL24_COMPANY_CODE` | — | PL24 company code |
|
||||
| `PL24_USERNAME` | — | PL24 credentials |
|
||||
|
||||
Reference in New Issue
Block a user