Proje: Okul Database · Hub: Okul Database — Domains

Users & Customers Domain

Platform iki tür aktör barındırır: D2C users (veliler/adaylar) ve B2B customers (okul firmaları).


D2C: Users (~15 tablo)

users

Ana kullanıcı tablosu. D2C kanalın temel kaydı.

KolonTipAçıklama
idbigint PK
namevarchar (FT index)
emailvarchar unique
customer_idFK nullableB2B firmaya bağlıysa
user_type_idFKusers_types
deleted_attimestampSoft delete

Full-text index: 2026-02-10 migration ile eklendi.

user_details

Kullanıcı profil genişletmesi.

KolonAçıklama
user_idFK → users
phone(indexed)
budget_min, budget_maxBütçe aralığı
lead_lost_countKaybedilen lead sayısı
lead_won_countKazanılan lead sayısı
lead_closed_countKapatılan
lead_open_countAçık lead
kvkk_accepted_atKVKK onay zamanı

Diğer User Tabloları

TabloAçıklama
user_logsAktivite audit trail
user_favoritesPolimorfik favori okullar
user_contactsEk iletişim bilgileri
user_session_hashSession yönetimi (2026-04-09 eklendi)
user_notification_idsPush token yönetimi
users_typesRol sınıflandırması (referans)
verification_codesEmail doğrulama
otp_codesOTP (ip_address, user_agent ile)

B2B: Customers (~14 tablo)

customers

Organizasyon/firma hesabı. Okulların sahibi veya yöneticisi.

KolonAçıklama
id, nameTemel kimlik
tc_noTürkiye kimlik no
erp_codeMuhasebe entegrasyon kodu
is_inflation_auto_updatedEnflasyon fiyat güncelleme bayrağı
~27 kolon toplam

customer_users

B2B portal kullanıcıları. customersusers M2M bağlantısı.

KolonAçıklama
customer_idFK → customers
user_idFK → users
role_idConfig tablosundan (customer_user_role)
title_idConfig tablosundan (customer_user_title)

customer_user_schools

Fine-grained erişim kontrolü. Hangi customer_user hangi okula erişebilir.

KolonAçıklama
customer_user_idFK
school_idFK
campus_idFK nullable

Sözleşme & Anlaşma

TabloAçıklama
customer_agreementsAna sözleşme kaydı (JSON product data içerir)
customer_agreements_renew_logsYenileme takibi
customer_agreements_renew_discountsYenileme indirimleri (assigned_user, followed_status)
customer_user_agreement_signsİmza takibi (IP + timestamp)
agreement_textsSözleşme şablonları (started_at/finished_at ile geçerlilik)

Scoring & Activity

TabloAçıklama
customer_scores5 boyut: demand, communication, responsiveness, payment, total (tinyInt 0-255)
customer_user_daily_activity_logsGünlük aktivite per customer_user
customer_credit_cardsKart token (PCI)

D2C vs B2B Ayrımı

D2C Flow:
  users → leads → school_offers → schools
  (veliler ve adaylar, form doldurur)

B2B Flow:
  customers → customer_users → customer_user_schools → schools
  customers → customer_agreements → payments
  (okul yöneticileri, ürün satın alır)

Kesişim:
  users.customer_id → customers  (B2B portal user, aynı zamanda users tablosunda)
  customer_users JOIN users ON customer_users.user_id = users.id