Proje: Okul Database · Hub: Okul Database — Domains
Payments Domain (~12 tablo)
Sözleşmeden ödemeye, checkout’tan transaction log’una kadar finansal akış.
Ödeme Akışı
customer_agreements (sözleşme imzalanır)
└── payments (taksit veya tek seferlik)
└── payment_transactions (her ödeme girişiminin logu)
→ iyzico/bank API req/res payloads (longText)
Checkout Akışı (yeni sistem):
checkouts (DRAFT → ... → COMPLETED)
└── JSON items kolonu içinde ürün listesi
customer_agreements ⭐
Ana gelir kaydı. Her B2B sözleşme buraya girer.
| Kolon | Açıklama |
|---|---|
customer_id | FK → customers |
school_id | FK → schools |
product_price_id | FK → product_prices |
products | JSON — ürün listesi |
product_arge | JSON — AR-GE ürün bilgisi |
missing_inputs | JSON — eksik bilgiler |
started_at, ended_at | Sözleşme dönemi |
status | aktif / pasif / iptal |
customer_agreements_renew_discounts
Yenileme indirimleri. assigned_user_id ve followed_status kolonları 2026-01-07’de eklendi.
payments
Taksit / tek seferlik ödeme kayıtları.
| Kolon | Açıklama |
|---|---|
customer_agreement_id | FK |
product_price_id | FK |
recurring_month | Hangi taksit |
amount | Tutar |
tax_rate | KDV oranı |
inflation_rate_id | FK → inflation_rates |
paid_at | Ödeme tarihi |
status | bekliyor / ödendi / iptal |
payment_transactions
Her ödeme girişiminin detay logu.
| Kolon | Açıklama |
|---|---|
payment_id | FK |
request_payload | longText — API isteği |
response_payload | longText — API cevabı |
status | başarılı / başarısız |
provider | iyzico / banka adı |
checkouts
Modern sepet/checkout sistemi.
| Kolon | Açıklama |
|---|---|
status | DRAFT, PENDING, COMPLETED, CANCELLED (enum) |
items | JSON — ürün listesi |
campaign_id | FK → sales_campaigns nullable |
discount_id | FK → discounts nullable |
customer_fields | 2026-02-04 eklendi — müşteri bilgileri |
Ürün & Fiyatlandırma
| Tablo | Açıklama |
|---|---|
products | 20+ feature flag (listing davranışı, lead limiti, resim kotası) |
product_prices | Lokasyon × okul tipi fiyat matrisi |
school_product_prices | Okula özel fiyat (boost tarihleri, yenileme bayrağı) |
İndirim Sistemi
| Tablo | Açıklama |
|---|---|
discounts | Okul ücreti indirimleri (kota, vardiya bazlı) |
coupon_codes | Promo kodlar (tip, durum, son kullanma tarihi) |
coupon_user | M2M — kullanıcı / lead / customer_user’a kod ataması |
sales_campaigns | Kampanya konfigürasyonu (yüzde bazlı) |
Referans Tablolar
payment_methods— Ödeme yöntemi tipleripayment_frequencies— Ödeme sıklığıinflation_rates— Enflasyon katsayısı (fiyat güncelleme için)credit_card_payments— Okula özel kredi kartı ödemeleri
Analytics Sorgu Kalıpları
-- Aylık gelir (basit)
SELECT DATE_FORMAT(paid_at, '%Y-%m') as month,
SUM(amount) as revenue,
COUNT(*) as payment_count
FROM payments
WHERE deleted_at IS NULL AND paid_at IS NOT NULL
GROUP BY month
-- Anlaşma başına ortalama değer
SELECT AVG(total_amount) from (
SELECT customer_agreement_id, SUM(amount) as total_amount
FROM payments
WHERE deleted_at IS NULL
GROUP BY customer_agreement_id
) subRelated
- table-payments —
paymentstablo detayı - table-customer-agreements — Sözleşme detayı
- domain-users-customers — Customer context