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' veya type: 'admin-search' — ID value gönderir ama displayValue olarak isim gösterir