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ı
}Related
- firma-okul-hiyerarsisi — hiyerarşi açıklaması
- context-state-yonetimi — Context kullanımı