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.

KolonAçıklama
customer_idFK → customers
school_idFK → schools
product_price_idFK → product_prices
productsJSON — ürün listesi
product_argeJSON — AR-GE ürün bilgisi
missing_inputsJSON — eksik bilgiler
started_at, ended_atSözleşme dönemi
statusaktif / 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ı.

KolonAçıklama
customer_agreement_idFK
product_price_idFK
recurring_monthHangi taksit
amountTutar
tax_rateKDV oranı
inflation_rate_idFK → inflation_rates
paid_atÖdeme tarihi
statusbekliyor / ödendi / iptal

payment_transactions

Her ödeme girişiminin detay logu.

KolonAçıklama
payment_idFK
request_payloadlongText — API isteği
response_payloadlongText — API cevabı
statusbaşarılı / başarısız
provideriyzico / banka adı

checkouts

Modern sepet/checkout sistemi.

KolonAçıklama
statusDRAFT, PENDING, COMPLETED, CANCELLED (enum)
itemsJSON — ürün listesi
campaign_idFK → sales_campaigns nullable
discount_idFK → discounts nullable
customer_fields2026-02-04 eklendi — müşteri bilgileri

Ürün & Fiyatlandırma

TabloAçıklama
products20+ feature flag (listing davranışı, lead limiti, resim kotası)
product_pricesLokasyon × okul tipi fiyat matrisi
school_product_pricesOkula özel fiyat (boost tarihleri, yenileme bayrağı)

İndirim Sistemi

TabloAçıklama
discountsOkul ücreti indirimleri (kota, vardiya bazlı)
coupon_codesPromo kodlar (tip, durum, son kullanma tarihi)
coupon_userM2M — kullanıcı / lead / customer_user’a kod ataması
sales_campaignsKampanya konfigürasyonu (yüzde bazlı)

Referans Tablolar

  • payment_methods — Ödeme yöntemi tipleri
  • payment_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
) sub