Proje: Okul Database · Hub: Okul Database — Tables

customers Tablosu

B2B organizasyon/firma hesabı. Okul sahibi veya yöneticisi olan kurumsal müşteriler.


Tam Kolon Listesi

KolonTipNullableDefaultAçıklama
idincrementsNOPK
redirect_idunsignedIntYESNULLcustomers.id (yönlendirme)
current_segment_idintYESNULLMevcut segment
potential_segment_idintYESNULLPotansiyel segment
namevarchar(255)NOYetkili kişi adı
firm_namevarchar(255)YESNULLFirma ticari adı
is_individualenum(‘0’,‘1’)NO1=Bireysel, 0=Kurumsal
emailvarchar(255)YESNULLFirma e-posta
phonevarchar(255)YESNULLSabit telefon
gsmvarchar(255)YESNULLCep telefonu
webvarchar(255)YESNULLWeb sitesi
billing_addressvarchar(255)YESNULLFatura adresi
billing_officevarchar(255)YESNULLFatura şubesi
billing_novarchar(255)YESNULLFatura numarası
tc_nodecimal(11,0)YESNULLTC kimlik no
invoice_emailvarchar(255)YESNULLFatura e-posta
invoice_typevarchar(255)YESNULLFatura tipi
company_typevarchar(255)NO'merchant'Şirket tipi
company_extensionvarchar(255)YESNULL
erp_codevarchar(255)YESNULLMuhasebe entegrasyon kodu (LOGO ERP)
location_level_1unsignedIntYESNULLlocations.id (il)
location_level_2unsignedIntYESNULLlocations.id (ilçe)
statussmallIntNO11=Aktif, 0=Pasif
is_key_accountbooleanNOfalseKey account mı
auth_person1_namevarchar(255)YESNULLYetkili 1 adı
auth_person1_phonevarchar(255)YESNULLYetkili 1 telefon
auth_person1_emailvarchar(255)YESNULLYetkili 1 e-posta
auth_person2_namevarchar(255)YESNULLYetkili 2 adı
auth_person2_phonevarchar(255)YESNULLYetkili 2 telefon
auth_person2_emailvarchar(255)YESNULLYetkili 2 e-posta
contract_schoolsvarchar(255)YESNULLSözleşmeli okul listesi
is_inflation_auto_updatedtinyIntNO0Enflasyon fiyat otogüncelleme
association_idunsignedIntYESNULLassociations.id
erp_sync_flagintNO0ERP senkronizasyon bayrağı
is_verified_commercial_informationbooleanYESfalseTicari bilgi doğrulandı mı
created_attimestampNO
updated_attimestampNO
deleted_attimestampYESNULLSoft delete

Customer Scores (customer_scores tablosu)

5 boyutlu sağlık skoru — tinyInt (0-255):

BoyutAçıklama
demandTalep / aktivite skoru
communicationİletişim kalitesi
responsivenessLead’lere tepki hızı
paymentÖdeme düzenlilik skoru
totalGenel skor
SELECT c.name, cs.total, cs.demand, cs.payment
FROM customers c
JOIN customer_scores cs ON cs.customer_id = c.id
WHERE c.deleted_at IS NULL
ORDER BY cs.total DESC;

Önemli İş Kuralları

  • erp_code → LOGO ERP muhasebe sistemi entegrasyon kodu. Fatura sorgulamaları için gerekli.
  • is_inflation_auto_updated = 1 → Sözleşme fiyatları enflasyon_rates tablosuna göre otomatik güncellenir.
  • is_key_account = true → Stratejik hesap; özel takip gerektirir.
  • company_type = 'merchant' → Varsayılan. Farklı tipler olabilir.
  • Bir müşteriye birden fazla okul (schools tablosunda) bağlı olabilir: schools WHERE customer_id = ?

Bağlantılı Tablolar

customers
  ← schools.customer_id           (bağlı okullar, 1:N)
  ← customer_users                (portal kullanıcıları, M2M)
        ← customer_user_schools   (okul erişim izni)
  ← customer_agreements           (sözleşmeler)
        ← payments
        ← customer_agreements_renew_logs
        ← customer_agreements_renew_discounts
  ← customer_scores               (sağlık skoru)
  ← customer_credit_cards         (kart tokenları)
  ← customer_user_daily_activity_logs
  ← leads.customer_id             (gelen leadler)
  ← school_interactions.customer_id (CRM aktivite)

Örnek Sorgular

-- Aktif müşteri sayısı ve okul dağılımı
SELECT c.id, c.firm_name, COUNT(s.id) as okul_sayisi,
       cs.total as skor
FROM customers c
LEFT JOIN schools s ON s.customer_id = c.id AND s.deleted_at IS NULL
LEFT JOIN customer_scores cs ON cs.customer_id = c.id
WHERE c.deleted_at IS NULL AND c.status = 1
GROUP BY c.id, c.firm_name, cs.total
ORDER BY okul_sayisi DESC;
 
-- Key account listesi
SELECT name, firm_name, erp_code, is_inflation_auto_updated
FROM customers
WHERE is_key_account = 1 AND deleted_at IS NULL AND status = 1;