Proje: Okul B2B App · Hub: Okul B2B App — Conventions

Firma Değiştirme Mekanizması

CompanyContext.setSelectedCompanyId(companyId) — Firma değiştirirken yapılan işlemler.

Akış

setSelectedCompanyId = async (companyId: number) => {
  // 1. CompaniesService'ten firma verisi al
  const company = await CompaniesService.getCompanyById(companyId);
 
  // 2. AsyncStorage'a kaydet (session persistence)
  await AsyncStorage.setItem('selectedCompanyId', companyId.toString());
 
  // 3. State güncelle
  setSelectedCompanyIdState(companyId);
  setCompany(companyData);
 
  // 4. API client güncelle
  apiClient.setCustomerId(companyId);
 
  // 5. Cache temizle (eski firma datası geçersiz)
  apiClient.clearCache();
 
  // 6. Ready sinyali ver
  setIsReady(true);
  setNeedsCompanySelection(false);
}

Analytics Event

Firma değiştirme ayrıca trackOrganizationEvent('company_select', ...) tetikler.

Cache Temizleme Önemi

apiClient.clearCache() çağrılmadan firma değiştirilirse:

  • Eski firmaya ait lead/galeri verisi cache’de kalabilir
  • Yeni firmada yanlış veri görünür

Önceki Seçim Kurtarma

App açılışında AsyncStorage['selectedCompanyId'] okunarak önceki firma seçimi restore edilir.