Proje: Okul.com.tr CRM · Hub: Okul.com.tr CRM — Domain

CRM Satış Kampanyası Modeli

SalesCampaign Entity

type SalesCampaignStatus = 'active' | 'inactive';
type SalesCampaignTypeValue = 'percentage' | 'x_months_y_pay' | 'discount_code';
 
interface SalesCampaign {
    id: number;
    code: string;
    name: string;
    description: string | null;
    sales_detail: string | null;
    start_date: string;
    end_date: string;
    status: SalesCampaignStatus;
    type: SalesCampaignTypeValue;
    school_type_id: number | null;
    user_id: number | null;       // Sorumlu satıcı
    initial_months: number | null;
    discount_rate: number | null;
    remaining_discount_rate: number | null;
    created_at: string;
    updated_at: string;
    deleted_at: string | null;
}

Kampanya Tip Etiketleri (UI)

type değeriTürkçe
percentageSepette Yüzde İndirim
x_months_y_payX Ay Y Öde
discount_codeİndirim Kodu

Kampanya vs Satış Kampanyası Farkı

CampaignSalesCampaign
Endpoint/admin/campaigns/admin/sales-campaigns
AmaçOkul indirimleri/hediyeleriSatış ekibi kampanyaları
Key Fieldstitle, type(discount/gift), valuecode, initial_months, discount_rate
Okul ilişkisischool_ids[] (direkt)school_type_id (tip bazlı)
Sorumluuser_id (satış temsilcisi)

UserSearchCombobox Kullanımı

Satış kampanyaları sayfasında user_id için UserSearchCombobox bileşeni kullanılır — kullanıcı ID seç ama isim göster.

Tarih Formatı

start_date/end_date için özel formatDateForInput(dateString) helper var (ISO→YYYY-MM-DD input formatı) ve formatDateForDisplay(dateString) (Türkçe tarih gösterimi).