Proje: Okul Platform · Hub: Okul Platform — Domain

Ana Varlıklar ve İlişkileri

School (Okul)

En merkezi varlık. 650+ satır model.

Önemli alanlar:

  • school_type_id — SchoolType enum (1=Anaokulu, 2=İlkokul, 3=Ortaokul, 4=Lise)
  • sector_id — Özel/Devlet
  • customer_id → Customer (B2B müşteri)
  • campus_id → Campus (kampüs)
  • college_id → College (kolej)
  • status — StringEnumType (1=aktif, 0=pasif)
  • school_closed — Kapalı mı
  • redirect_id — Başka okula yönlendirme
  • monthly_lead_limit — Aylık lead limiti
  • hidden_lead_form / hidden_lead_phone — Form/telefon gizleme

İçerdiği ilişkiler: schoolFilter, schoolDetail, schoolLocation, schoolFee, tags, features, campaigns, scholarships, activities, gallery, announcements, leadNotificationUsers

Önemli trait’ler: Searchable (Typesense), Revisionable, SoftDeletes, HasDynamicIncludes

Arama için: toSearchableArray() — Typesense’e gönderilen veriyi tanımlar

Customer (Sözleşmeli Müşteri / Okul Sahibi Firma)

B2B müşteri firması. Birden fazla okul olabilir.

Önemli alanlar:

  • is_individual — Bireysel mi kurumsal mı
  • is_inflation_auto_updated — Sözleşme otomatik enflasyon güncellemesi
  • contract_schools — Sözleşmedeki okul sayısı

İlişkiler: agreements (CustomerAgreement), schools, customerUsers

CustomerUser (B2B Panel Kullanıcısı)

Okul sahibi firmanın paneldeki kullanıcıları. User’dan farklı.

User (Platform Kullanıcısı — B2C)

Okul arayan veli/öğrenci. user_group_type enum’u ile admin/user/customer ayırt edilir.

Sabit ID’ler (User modeli içinde):

  • FURKAN_NAMLI_ID = 3
  • MUSTAFA_AYDIN_ID = 1
  • EMRE_KIRBIYIK_ID = 25
  • TESTING_ADMIN_USER_ID = 5
  • CREDIT_CARD_USER_ID = 33

Lead (Kayıt/İlgi Formu)

Velinin okula ilgi göstermesi = Lead.

Status enum:

  • open — Açık (yeni)
  • created_via_offer_form — Teklif formu üzerinden geldi
  • created_via_inbound — Gelen arama üzerinden

Giriş yöntemi (LeadEntryMethodType):

  • form, call, lead_pool, whatsapp

Lead tipleri (LeadType):

  • scholarship, early-registration, pending-scholarship, offer

Checkout (Satış Teklifi)

Admin tarafından oluşturulan ürün paketi satışı.

Status:

  • draft, completed, sent, cancelled

items — JSON field, ürün listesi

SchoolFilter (Arama Filtresi)

Her okul için arama motoru verisi: url, thumb_url, lokasyon bilgileri, listing_priority, is_customer.

UserGroupType Enum

admin    — CRM / admin paneli kullanıcısı
user     — B2C platform kullanıcısı (veli/öğrenci)
customer — B2B okul sahibi kullanıcısı

UserCreateByType Enum

register, facebook, lead-pool, pipedrive, call, form, panel, school_comment