Proje: Okul.com.tr CRM · Hub: Okul.com.tr CRM — Domain
CRM Kullanıcı Modeli
Auth Store User (Giriş Yapan)
interface User { // useAuthStore'daki
id: number;
name: string;
email: string;
user_type: { id: number; name: string; type: string; is_admin: string }
roles: { id: number; name: string; display_name: string }[]
permissions: { id: number; name: string; display_name: string; description: string | null; category_name: string }[]
}UserModal (API’deki Tam Kullanıcı)
interface UserModal {
id: number;
name: string;
email: string;
first_name: string | null;
last_name: string | null;
username: string;
customer_id: number;
user_type_id: number;
user_group_type: string;
is_active: boolean;
created_with: string;
person_id: number;
is_member: boolean;
unsubscribe: string;
last_seen_at: string | null;
deleted_at: string | null;
user_detail?: UserDetail;
user_type?: UserType;
user_contacts?: any;
customers?: any;
}UserDetail
Kullanıcının genişletilmiş bilgileri:
interface UserDetail {
gender: string;
phone: string;
phone2: string | null;
budget: number;
budget_min: number;
budget_max: number;
lost_leads_count: string;
won_leads_count: string;
closed_leads_count: string;
open_leads_count: string;
kvkk: string;
notification: string;
note: string | null;
city_id: number;
avatar: string | null;
birth_date: string | null;
city: Location | null;
}Kullanıcı Tipleri
user_type_id === 1 → Super Admin (tüm permission’ları bypass eder)
Types/user.ts
src/types/user.ts — ayrı bir user types dosyası var (api.ts’e ek olarak).
Kullanıcı Arama Bileşenleri
UserSearchCombobox— kullanıcı arama ve seçme combobox’ı- Filter’larda
type: 'user-search'veyatype: 'admin-search'— ID value gönderir ama displayValue olarak isim gösterir
Related
- auth-akisi — useAuthStore ve giriş akışı
- permission-sistemi — Roller ve permission’lar