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:
Fusion
2026-05-14 02:31:34 +00:00
parent c1085d0bbf
commit 561b02b3d2
14 changed files with 43 additions and 59 deletions

View File

@@ -15,7 +15,7 @@ SASE v2, araç sahiplerinin VIN numarasını girerek aracın markasını, modeli
- OEM kod arama ve kopyalama
- VIN-less katalog tarayıcısı (marka → model → kategori)
- Abonelik yönetimi: marka bazlı erişim kontrolü
- Iyzico kart + EFT ödeme yöntemleri
- Stripe kart + EFT ödeme yöntemleri
- Referral sistemi
---
@@ -37,7 +37,7 @@ SASE v2, araç sahiplerinin VIN numarasını girerek aracın markasını, modeli
| Auth | Better Auth | 1.2 |
| Dosya Depolama | MinIO (S3) | — |
| E-posta | Postal | — |
| Ödeme | Iyzico | — |
| Ödeme | Stripe | — |
| Browser Otomasyon | Playwright | 1.50 |
| HTTP İstemci | undici | 7.22 |
| Rate Limiting | @nestjs/throttler | 6.3 |
@@ -89,7 +89,7 @@ ss/ (repo root)
│ │ ├── brands/ # Marka CRUD
│ │ ├── plans/ # Fiyat planları CRUD
│ │ ├── subscriptions/ # Abonelik yaşam döngüsü
│ │ ├── payments/ # Iyzico + EFT ödeme
│ │ ├── payments/ # Stripe + EFT ödeme
│ │ ├── referrals/ # Referral programı
│ │ ├── vehicles/ # VIN decode + araç geçmişi
│ │ ├── categories/ # Parça kategorisi ağacı
@@ -281,9 +281,9 @@ ss/ (repo root)
| subscriptionId | uuid | NOT NULL, FK → userSubscriptions.id |
| amount | integer | NOT NULL (kuruş) |
| currency | varchar(3) | default "TRY" |
| method | varchar(20) | NOT NULL → "iyzico" \| "eft" |
| method | varchar(20) | NOT NULL → "stripe" \| "eft" |
| status | varchar(20) | default "pending" → "pending" \| "completed" \| "failed" \| "refunded" |
| iyzicoPaymentId | text | nullable |
| stripePaymentIntentId | text | nullable |
| eftReceiptUrl | text | nullable |
| adminNote | text | nullable |
| createdAt | timestamptz | default now() |
@@ -631,8 +631,8 @@ Better Auth dahili route'ları: `POST /api/auth/sign-in/email`, `POST /api/auth/
| Method | Path | Auth | Açıklama | Body |
|--------|------|------|---------|------|
| `POST` | `/payments/iyzico/initialize` | Protected | Iyzico ödeme başlat | `{ planKey, billingPeriod, brandIds[] }` |
| `POST` | `/payments/iyzico/callback` | Public | Iyzico webhook | `{ paymentId, iyzicoPaymentId, status }` |
| `POST` | `/payments/stripe/checkout` | Protected | Stripe ödeme başlat | `{ planKey, billingPeriod, brandIds[] }` |
| `POST` | `/payments/stripe/webhook` | Public | Stripe webhook | `{ type, data }` |
| `POST` | `/payments/eft` | Protected | EFT ödeme oluştur | `{ planKey, billingPeriod, brandIds[] }` |
| `POST` | `/payments/eft/:id/receipt` | Protected | EFT makbuz yükle (multipart, PNG/JPG/PDF max 5MB) | `file` |
| `PATCH` | `/payments/eft/:id/approve` | Admin | EFT ödeme onayla | `{ adminNote? }` |
@@ -817,7 +817,7 @@ Better Auth dahili route'ları: `POST /api/auth/sign-in/email`, `POST /api/auth/
| SUB_003 | Abonelik | Geçersiz marka sayısı |
| SUB_004 | Abonelik | Abonelik zaten aktif |
| PAY_001 | Ödeme | Ödeme başarısız |
| PAY_002 | Ödeme | Iyzico hatası |
| PAY_002 | Ödeme | Stripe hatası |
| PAY_003 | Ödeme | EFT makbuzu gerekli |
| PAY_004 | Ödeme | Ödeme zaten işlenmiş |
| GEN_001 | Genel | Bulunamadı |
@@ -864,10 +864,10 @@ cancelled → (yeniden başlatma, süre içinde) → active
### Ödeme Akışı
**Iyzico (Kart):**
1. `POST /payments/iyzico/initialize` → Iyzico token alınır
2. Kullanıcı iyzico formunda ödeme yapar
3. `POST /payments/iyzico/callback` webhook'u aboneliği aktifleştirir
**Stripe (Kart):**
1. `POST /payments/stripe/checkout` → Stripe Checkout Session oluşturulur
2. Kullanıcı Stripe ödeme sayfasına yönlendirilir
3. `POST /payments/stripe/webhook` webhook'u aboneliği aktifleştirir
**EFT (Havale):**
1. `POST /payments/eft` → EFT kaydı oluşturulur, banka bilgileri gösterilir
@@ -1229,8 +1229,8 @@ Plan { id, name, brandCount, priceMonthly, priceYearly, isActive, createdAt }
Subscription { id, userId, planId, status, startDate, endDate, cancelledAt, createdAt }
SubscriptionStatus = "pending" | "active" | "cancelled" | "expired"
UserBrand { id, userId, subscriptionId, brandId, createdAt }
Payment { id, userId, subscriptionId, amount, currency, method, status, iyzicoPaymentId, eftReceiptUrl, adminNote, createdAt }
PaymentMethod = "iyzico" | "eft"
Payment { id, userId, subscriptionId, amount, currency, method, status, stripePaymentIntentId, eftReceiptUrl, adminNote, createdAt }
PaymentMethod = "stripe" | "eft"
PaymentStatus = "pending" | "completed" | "failed" | "refunded"
CreateSubscriptionInput { planId, brandIds: string[], billingPeriod }
@@ -1356,7 +1356,7 @@ shadcn/Radix tabanlı bileşen kütüphanesi.
| Değişken | Grup | Açıklama |
|---------|------|---------|
| `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET` | OAuth | Google OAuth |
| `IYZICO_API_KEY`, `IYZICO_SECRET_KEY`, `IYZICO_BASE_URL` | Ödeme | Iyzico entegrasyonu |
| `STRIPE_SECRET_KEY`, `STRIPE_PUBLISHABLE_KEY` | Ödeme | Stripe entegrasyonu |
| `PL24_BASE_URL`, `PL24_COMPANY_CODE`, `PL24_USERNAME`, `PL24_PASSWORD` | PL24 | PL24 katalog API |
| `EMEX_USERNAME`, `EMEX_PASSWORD` | EMEX | EMEX scraper |
| `PCAT_PROXY_USER`, `PCAT_PROXY_PASS` | PartsCatalogs | Playwright proxy |