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ğeri | Türkçe |
|---|---|
percentage | Sepette Yüzde İndirim |
x_months_y_pay | X Ay Y Öde |
discount_code | İndirim Kodu |
Kampanya vs Satış Kampanyası Farkı
| Campaign | SalesCampaign | |
|---|---|---|
| Endpoint | /admin/campaigns | /admin/sales-campaigns |
| Amaç | Okul indirimleri/hediyeleri | Satış ekibi kampanyaları |
| Key Fields | title, type(discount/gift), value | code, initial_months, discount_rate |
| Okul ilişkisi | school_ids[] (direkt) | school_type_id (tip bazlı) |
| Sorumlu | — | user_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).
Related
- okul-entity — school_type_id ilişkisi
- servis-katmani — SalesCampaignService