Proje: Okul Platform · Hub: Okul Platform — Domain

CustomerUser (B2B Portal Kullanıcısı)

Bir Customer firmasına bağlı portal kullanıcısı.

Alanlar:

  • customer_id → Customer (firma)
  • user_id → User (login kimliği)
  • role_id → Config (customer_user_role) — CRM’de tanımlı B2B rol
  • title_id → Config (customer_user_title) — CRM’de tanımlı unvan
  • status — Aktif mi

CustomerUserSchool (Kullanıcı-Okul Bağlantısı)

Bir CustomerUser’ın erişebildiği okullar.

Temel bağlantı alanları:

  • customer_user_id → CustomerUser
  • user_id → User (denormalize, hız için)
  • customer_id → Customer (denormalize)
  • school_id → School
  • campus_id → Campus

Erişim izinleri:

  • has_content_access — Okul içeriklerini yönetebilir
  • has_lead_access — Lead’leri görebilir
  • can_receive_leads_sms — Lead gelince SMS alır
  • can_receive_leads_mail — Lead gelince e-posta alır

Aktivite:

  • last_activity_at — Son aktivite tarihi

Ilişkiler

  • CustomerUser.customerUserSchools() — Erişebildiği tüm okullar
  • CustomerUser.customerUserSchoolsWithAccess() — Sadece erişimi olanlar

CIO Entegrasyonu

B2BService: createOrDeleteCustomerUserSchoolToRequest() — Kullanıcı-okul bağlantısını CIO’ya gönderir/siler.

Events

  • CustomerUserCreatedEvent — Yeni B2B kullanıcı oluşturuldu
  • CustomerUserDeletedEvent — B2B kullanıcı silindi

Admin CRUD

POST /api/admin/customer-users — Yeni B2B kullanıcı oluştur (User da oluşturabilir) CustomerUserService.create() — userId varsa bağlar, yoksa yeni User oluşturur.