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

Firma ve Okul API Tip Detayları

Company (API)

/customer/me/firms response:

interface Company {
  id: number;
  redirect_id: number;    // firma ID'si (genellikle id ile aynı)
  name: string;
  firm_name: string;
  province_id: number;
  province_name: string;  // İl adı
  county_id: number;
  county_name: string;    // İlçe adı
  schools: School[];      // Firmanın okulları
}

School (API)

interface School {
  id: number;
  name: string;
  province_id, province_name,   // İl
  county_id, county_name,       // İlçe
  neighbourhood_id, neighbourhood_name,  // Mahalle
  address: string;
}

SchoolUI (UI Format)

Context’te kullanılan, istatistik eklenmiş format:

interface SchoolUI {
  id, name, location, address,
  city,       // province_name
  district,   // county_name
  neighborhood,
  requestCount: number,  // Leads totalCount (ayrıca yüklenir)
  photoCount: number,    // Galeri fotoğraf sayısı (ayrıca yüklenir)
  isActive: boolean
}

SchoolContext.convertApiSchoolToUISchool() ile dönüştürülür.

CompanyContextType

{
  selectedCompanyId: number | null,
  company: Company | null,
  setSelectedCompanyId: (id: number) => Promise<void>,
  isLoading, isReady, error,
  needsCompanySelection: boolean,  // Firma seçim ekranı gösterilmeli mi
  hasNoCompanies: boolean,         // Hiç firma yok ekranı
}