Fix web build failure from corrupted Tahesab status types.
Restore MandehValueDto status encoding and derive بس/بد labels from amount.
This commit is contained in:
@@ -555,7 +555,7 @@ onMounted(async () => {
|
||||
{{ formatMandehAmount(v.amount, v.unit) }}
|
||||
</span>
|
||||
<span class="unit">{{ v.unit }}</span>
|
||||
<span class="st">{{ v.status === 'بس' ? 'بد' : 'بس' }}</span>
|
||||
<span class="st">{{ Number(v.amount) >= 0 ? 'بد' : 'بس' }}</span>
|
||||
<span v-if="vi < item.values.length - 1" class="sep">|</span>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
+245
-244
@@ -3,13 +3,13 @@ export type UserRole = "owner" | "admin" | "sales" | "support";
|
||||
export const USER_ROLES: UserRole[] = ["owner", "admin", "sales", "support"];
|
||||
|
||||
export const USER_ROLE_LABELS: Record<UserRole, string> = {
|
||||
owner: "Ù
اÙÚ©",
|
||||
admin: "Ù
Ø¯ÛØ±",
|
||||
sales: "ÙØ±ÙØ´",
|
||||
support: "Ù¾Ø´ØªÛØ¨Ø§ÙÛ",
|
||||
owner: "ÃÂ
çÃÂé",
|
||||
admin: "ÃÂ
ïÃÂñ",
|
||||
sales: "ÃÂñÃÂô",
|
||||
support: "þôêÃÂèçÃÂÃÂ",
|
||||
};
|
||||
|
||||
/** ØªÙØ¸ÛÙ
ات سازÙ
اÙÛ Ù Ù
Ø¯ÛØ±Ûت کاربرا٠*/
|
||||
/** êÃÂøÃÂÃÂ
çê óçòÃÂ
çÃÂààÃÂ
ïÃÂñÃÂê éçñèñçà*/
|
||||
export function canManageSettings(role: UserRole | string | null | undefined): boolean {
|
||||
return role === "owner" || role === "admin";
|
||||
}
|
||||
@@ -18,12 +18,12 @@ export function canManageUsers(role: UserRole | string | null | undefined): bool
|
||||
return role === "owner" || role === "admin";
|
||||
}
|
||||
|
||||
/** Ù
Ø´Ø§ÙØ¯Ù ÙÙ
٠پرÙÙØ¯ÙâÙØ§Û سازÙ
ا٠(ÙÙ ÙÙØ· Ù
اÙÚ©ÛØª Ø®ÙØ¯) */
|
||||
/** ÃÂ
ôçÃÂïàÃÂÃÂ
àþñÃÂÃÂïÃÂâÂÂÃÂçàóçòÃÂ
çà(ÃÂàÃÂÃÂ÷ ÃÂ
çÃÂéÃÂê îÃÂï) */
|
||||
export function canViewAllRecords(role: UserRole | string | null | undefined): boolean {
|
||||
return role === "owner" || role === "admin";
|
||||
}
|
||||
|
||||
/** تغÛÛØ± Ù
اÙÚ© پرÙÙØ¯Ù */
|
||||
/** êúÃÂÃÂñ ÃÂ
çÃÂé þñÃÂÃÂïà*/
|
||||
export function canReassignRecords(role: UserRole | string | null | undefined): boolean {
|
||||
return role === "owner" || role === "admin";
|
||||
}
|
||||
@@ -37,10 +37,10 @@ export interface AuthUserDto {
|
||||
organizationId: string;
|
||||
organizationName?: string;
|
||||
hasAvatar?: boolean;
|
||||
/** Ù
اÙÚ© Ù
ØÛØ· ÙØ¹ÙÛ â Ø§Ø´ØªØ±Ø§Ú© Ù
تعÙ٠ب٠Ù
اÙÚ© است ÙÙ Ø¹Ø¶Ù Ø²ÛØ±Ù
جÙ
ÙØ¹Ù */
|
||||
/** ÃÂ
çÃÂé ÃÂ
ÃÂÃÂ÷ ÃÂùÃÂàâ çôêñçé ÃÂ
êùÃÂàèàÃÂ
çÃÂé çóê ÃÂàùöàòÃÂñÃÂ
ìÃÂ
ÃÂùà*/
|
||||
isOrgOwner?: boolean;
|
||||
enabledModules?: OrgModuleKey[];
|
||||
/** Ø®ÙØ§ØµÙ اشتراک Ù
اÙÚ© Ù
ØÛØ· (Ø¨Ø±Ø§Û Ø§Ø¹Ø¶Ø§ ÙÙØ· Ø¬ÙØª ÙÙ
Ø§ÛØ´/Ú¯ÛØª ÙØ±Ùد) */
|
||||
/** îÃÂçõàçôêñçé ÃÂ
çÃÂé ÃÂ
ÃÂÃÂ÷ (èñçàçùöç ÃÂÃÂ÷ ìÃÂê ÃÂÃÂ
çÃÂô/ïÃÂê ÃÂñÃÂï) */
|
||||
subscription?: SubscriptionSummaryDto | null;
|
||||
}
|
||||
|
||||
@@ -64,15 +64,15 @@ export const BILLING_PLAN_CODES: BillingPlanCode[] = [
|
||||
];
|
||||
|
||||
export const BILLING_PLAN_LABELS: Record<BillingPlanCode, string> = {
|
||||
trial: "دÙ
Ù Û±Ûµ Ø±ÙØ²Ù",
|
||||
monthly: "Ù
Ø§ÙØ§ÙÙ",
|
||||
quarterly: "سÙâÙ
اÙÙ",
|
||||
semiannual: "ششâÙ
اÙÙ",
|
||||
yearly: "ÛکساÙÙ",
|
||||
custom: "Ø³ÙØ§Ø±Ø´Û",
|
||||
trial: "ïÃÂ
àñõ ñÃÂòÃÂ",
|
||||
monthly: "ÃÂ
çÃÂçÃÂÃÂ",
|
||||
quarterly: "óÃÂâÂÂÃÂ
çÃÂÃÂ",
|
||||
semiannual: "ôôâÂÂÃÂ
çÃÂÃÂ",
|
||||
yearly: "ÃÂéóçÃÂÃÂ",
|
||||
custom: "óÃÂçñôÃÂ",
|
||||
};
|
||||
|
||||
/** Ù
دت Ù¾ÛØ´âÙØ±Ø¶ Ù¾ÙÙâÙØ§ (Ø±ÙØ²) â custom ÙØ¯Ø§Ø±Ø¯ */
|
||||
/** ÃÂ
ïê þÃÂôâÂÂÃÂñö þÃÂÃÂâÂÂÃÂç (ñÃÂò) â custom ÃÂïçñï */
|
||||
export const BILLING_PLAN_DAYS: Record<Exclude<BillingPlanCode, "custom">, number> = {
|
||||
trial: 15,
|
||||
monthly: 30,
|
||||
@@ -164,49 +164,49 @@ export const ORG_MODULE_KEYS: OrgModuleKey[] = [
|
||||
];
|
||||
|
||||
export const ORG_MODULE_LABELS: Record<OrgModuleKey, string> = {
|
||||
customers: "Ù
Ø´ØªØ±ÛØ§Ù",
|
||||
pipeline: "Ú©Ø§Ø±ÛØ² ÙØ±ÙØ´",
|
||||
products: "Ù
ØØµÙÙØ§Øª",
|
||||
invoices: "ÙØ§Ú©ØªÙØ±ÙØ§",
|
||||
quotes: "Ù¾ÛØ´âÙØ§Ú©ØªÙØ±ÙØ§",
|
||||
commissions: "Ù¾ÙØ±Ø³Ø§Ùت",
|
||||
sales_forecast: "ÙØ¯Ù Ù Ù¾ÛØ´âبÛÙÛ",
|
||||
activities: "ÙØ¹Ø§ÙÛØªâÙØ§",
|
||||
tickets: "تÛکتâÙØ§",
|
||||
workflow_automations: "اتÙÙ
اسÛÙ٠گردش کار",
|
||||
message_automations: "اتÙÙ
اسÛÙÙ Ù¾ÛØ§Ù
Ú©",
|
||||
lead_forms: "ÙØ±Ù
âØ³Ø§Ø² Ø³Ø±ÙØ®",
|
||||
leads: "Ù
Ø¯ÛØ±Ûت ÙÛØ¯Ùا",
|
||||
project_boards: "Ú©Ø§Ø±ÛØ² پرÙÚÙ",
|
||||
inventory: "Ø§ÙØ¨Ø§Ø±",
|
||||
cheques: "ÚÚ©âÙØ§",
|
||||
attachments: "Ù¾ÛÙØ³ØªâÙØ§",
|
||||
loyalty: "باشگا٠Ù
Ø´ØªØ±ÛØ§Ù",
|
||||
reports: "گزارشâÙØ§",
|
||||
notes: "ÛØ§Ø¯Ø¯Ø§Ø´ØªâÙØ§",
|
||||
tahesab: "تÙâØØ³Ø§Ø¨",
|
||||
custom_fields: "ÙÛÙØ¯ÙØ§Û Ø³ÙØ§Ø±Ø´Û",
|
||||
currencies: "Ø§Ø±Ø²ÙØ§",
|
||||
team_settings: "تÛÙ
Ù ØªÙØ¸ÛÙ
ات سازÙ
اÙ",
|
||||
customers: "ÃÂ
ôêñÃÂçÃÂ",
|
||||
pipeline: "éçñÃÂò ÃÂñÃÂô",
|
||||
products: "ÃÂ
ÃÂõÃÂÃÂçê",
|
||||
invoices: "ÃÂçéêÃÂñÃÂç",
|
||||
quotes: "þÃÂôâÂÂÃÂçéêÃÂñÃÂç",
|
||||
commissions: "þÃÂñóçÃÂê",
|
||||
sales_forecast: "ÃÂïààþÃÂôâÂÂèÃÂÃÂÃÂ",
|
||||
activities: "ÃÂùçÃÂÃÂêâÂÂÃÂç",
|
||||
tickets: "êÃÂéêâÂÂÃÂç",
|
||||
workflow_automations: "çêÃÂÃÂ
çóÃÂÃÂàïñïô éçñ",
|
||||
message_automations: "çêÃÂÃÂ
çóÃÂÃÂàþÃÂçÃÂ
é",
|
||||
lead_forms: "ÃÂñÃÂ
âÂÂóçò óñÃÂî",
|
||||
leads: "ÃÂ
ïÃÂñÃÂê ÃÂÃÂïÃÂç",
|
||||
project_boards: "éçñÃÂò þñÃÂÃÂÃÂ",
|
||||
inventory: "çÃÂèçñ",
|
||||
cheques: "ÃÂéâÂÂÃÂç",
|
||||
attachments: "þÃÂÃÂóêâÂÂÃÂç",
|
||||
loyalty: "èçôïçàÃÂ
ôêñÃÂçÃÂ",
|
||||
reports: "ïòçñôâÂÂÃÂç",
|
||||
notes: "ÃÂçïïçôêâÂÂÃÂç",
|
||||
tahesab: "êÃÂâÂÂÃÂóçè",
|
||||
custom_fields: "ÃÂÃÂÃÂïÃÂçàóÃÂçñôÃÂ",
|
||||
currencies: "çñòÃÂç",
|
||||
team_settings: "êÃÂÃÂ
àêÃÂøÃÂÃÂ
çê óçòÃÂ
çÃÂ",
|
||||
faq: "FAQ",
|
||||
audit_logs: "ÙØ§Ú¯ ÙØ¹Ø§ÙÛØª کاربراÙ",
|
||||
saved_views: "ÙÛÙØªØ±ÙØ§Û Ø°Ø®ÛØ±ÙâØ´Ø¯Ù",
|
||||
public_api: "API Ù ÙØ¨âÙÙÚ©",
|
||||
sms_campaigns: "Ù¾ÛØ§Ù
Ú© گرÙÙÛ",
|
||||
teams: "تÛÙ
âÙØ§ Ù Ø³Ø·Ø Ø¯Ø³ØªØ±Ø³Û Ø¨Ù Ù¾Ø±ÙÙØ¯ÙâÙØ§",
|
||||
woocommerce: "ÙÙکاÙ
رس",
|
||||
voip: "تÙÙ٠سازÙ
اÙÛ",
|
||||
reservations: "رزر٠٠ÙÙØ¨ØªâدÙÛ",
|
||||
audit_logs: "ÃÂçï ÃÂùçÃÂÃÂê éçñèñçÃÂ",
|
||||
saved_views: "ÃÂÃÂÃÂêñÃÂçàðîÃÂñÃÂâÂÂôïÃÂ",
|
||||
public_api: "API àÃÂèâÂÂÃÂÃÂé",
|
||||
sms_campaigns: "þÃÂçÃÂ
é ïñÃÂÃÂÃÂ",
|
||||
teams: "êÃÂÃÂ
âÂÂÃÂç àó÷àïóêñóàèàþñÃÂÃÂïÃÂâÂÂÃÂç",
|
||||
woocommerce: "ÃÂÃÂéçÃÂ
ñó",
|
||||
voip: "êÃÂÃÂàóçòÃÂ
çÃÂÃÂ",
|
||||
reservations: "ñòñààÃÂÃÂèêâÂÂïÃÂÃÂ",
|
||||
};
|
||||
|
||||
export const ORG_MODULE_GROUPS: Array<{
|
||||
title: string;
|
||||
keys: OrgModuleKey[];
|
||||
}> = [
|
||||
{ title: "Ù
Ø´ØªØ±ÛØ§Ù", keys: ["customers"] },
|
||||
{ title: "ÙÛØ¯Ùا", keys: ["leads", "lead_forms"] },
|
||||
{ title: "ÃÂ
ôêñÃÂçÃÂ", keys: ["customers"] },
|
||||
{ title: "ÃÂÃÂïÃÂç", keys: ["leads", "lead_forms"] },
|
||||
{
|
||||
title: "ÙØ±ÙØ´",
|
||||
title: "ÃÂñÃÂô",
|
||||
keys: [
|
||||
"pipeline",
|
||||
"products",
|
||||
@@ -216,10 +216,10 @@ export const ORG_MODULE_GROUPS: Array<{
|
||||
"sales_forecast",
|
||||
],
|
||||
},
|
||||
{ title: "ÙØ¹Ø§ÙÛØªâÙØ§", keys: ["activities", "notes"] },
|
||||
{ title: "Ù¾Ø´ØªÛØ¨Ø§ÙÛ", keys: ["tickets", "faq"] },
|
||||
{ title: "ÃÂùçÃÂÃÂêâÂÂÃÂç", keys: ["activities", "notes"] },
|
||||
{ title: "þôêÃÂèçÃÂÃÂ", keys: ["tickets", "faq"] },
|
||||
{
|
||||
title: "اتÙÙ
اسÛÙÙ",
|
||||
title: "çêÃÂÃÂ
çóÃÂÃÂÃÂ",
|
||||
keys: [
|
||||
"workflow_automations",
|
||||
"message_automations",
|
||||
@@ -227,7 +227,7 @@ export const ORG_MODULE_GROUPS: Array<{
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Ø§Ø¨Ø²Ø§Ø±ÙØ§",
|
||||
title: "çèòçñÃÂç",
|
||||
keys: [
|
||||
"project_boards",
|
||||
"inventory",
|
||||
@@ -242,7 +242,7 @@ export const ORG_MODULE_GROUPS: Array<{
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "ØªÙØ¸ÛÙ
ات",
|
||||
title: "êÃÂøÃÂÃÂ
çê",
|
||||
keys: [
|
||||
"team_settings",
|
||||
"teams",
|
||||
@@ -312,7 +312,7 @@ export interface OrgUserDto {
|
||||
lastLoginAt?: string | null;
|
||||
hasAvatar?: boolean;
|
||||
commissionPercent?: number;
|
||||
/** own = ÙÙØ· Ø®ÙØ¯ | team = ÙÙ
âØªÛÙ
ÛâÙØ§ | org = ک٠سازÙ
ا٠*/
|
||||
/** own = ÃÂÃÂ÷ îÃÂï | team = ÃÂÃÂ
âÂÂêÃÂÃÂ
ÃÂâÂÂÃÂç | org = éàóçòÃÂ
çà*/
|
||||
dataVisibility?: DataVisibility;
|
||||
createdAt: string;
|
||||
}
|
||||
@@ -322,9 +322,9 @@ export type DataVisibility = "own" | "team" | "org";
|
||||
export const DATA_VISIBILITIES: DataVisibility[] = ["own", "team", "org"];
|
||||
|
||||
export const DATA_VISIBILITY_LABELS: Record<DataVisibility, string> = {
|
||||
own: "ÙÙØ· پرÙÙØ¯ÙâÙØ§Û Ø®ÙØ¯",
|
||||
team: "تÛÙ
âÙØ§Û عضÙ",
|
||||
org: "ک٠سازÙ
اÙ",
|
||||
own: "ÃÂÃÂ÷ þñÃÂÃÂïÃÂâÂÂÃÂçàîÃÂï",
|
||||
team: "êÃÂÃÂ
âÂÂÃÂçàùöÃÂ",
|
||||
org: "éàóçòÃÂ
çÃÂ",
|
||||
};
|
||||
|
||||
export interface UpdateUserVisibilityRequest {
|
||||
@@ -345,14 +345,14 @@ export const ROLE_PERMISSION_ITEMS: Array<{
|
||||
key: RolePermissionKey;
|
||||
label: string;
|
||||
}> = [
|
||||
{ key: "customers", label: "Ù
Ø´ØªØ±ÛØ§Ù" },
|
||||
{ key: "sales", label: "ÙØ±ÙØ´ Ù Ù
عاÙ
ÙØ§Øª" },
|
||||
{ key: "billing", label: "Ù¾ÛØ´âÙØ§Ú©ØªÙØ±ÙØ§ Ù ÙØ§Ú©ØªÙØ±ÙØ§" },
|
||||
{ key: "products", label: "Ù
ØØµÙÙØ§Øª ٠خدÙ
ات" },
|
||||
{ key: "activities", label: "ÙØ¹Ø§ÙÛØªâÙØ§" },
|
||||
{ key: "notes", label: "ÛØ§Ø¯Ø¯Ø§Ø´ØªâÙØ§" },
|
||||
{ key: "reports", label: "گزارشâÙØ§" },
|
||||
{ key: "audit", label: "ÙØ§Ú¯ ÙØ¹Ø§ÙÛØª کاربراÙ" },
|
||||
{ key: "customers", label: "ÃÂ
ôêñÃÂçÃÂ" },
|
||||
{ key: "sales", label: "ÃÂñÃÂô àÃÂ
ùçÃÂ
ÃÂçê" },
|
||||
{ key: "billing", label: "þÃÂôâÂÂÃÂçéêÃÂñÃÂç àÃÂçéêÃÂñÃÂç" },
|
||||
{ key: "products", label: "ÃÂ
ÃÂõÃÂÃÂçê àîïÃÂ
çê" },
|
||||
{ key: "activities", label: "ÃÂùçÃÂÃÂêâÂÂÃÂç" },
|
||||
{ key: "notes", label: "ÃÂçïïçôêâÂÂÃÂç" },
|
||||
{ key: "reports", label: "ïòçñôâÂÂÃÂç" },
|
||||
{ key: "audit", label: "ÃÂçï ÃÂùçÃÂÃÂê éçñèñçÃÂ" },
|
||||
];
|
||||
|
||||
export interface OrgRoleMemberDto {
|
||||
@@ -422,7 +422,7 @@ export interface ApiErrorBody {
|
||||
}
|
||||
|
||||
export interface LoginRequest {
|
||||
/** اÛÙ
ÛÙ ÛØ§ Ø´Ù
ار٠Ù
ÙØ¨Ø§ÛÙ */
|
||||
/** çÃÂÃÂ
ÃÂàÃÂç ôÃÂ
çñàÃÂ
ÃÂèçÃÂà*/
|
||||
identifier: string;
|
||||
password: string;
|
||||
}
|
||||
@@ -444,7 +444,7 @@ export interface LoginChallengeResponse {
|
||||
channel: 'email' | 'mobile';
|
||||
expiresInSeconds: number;
|
||||
maskedDestination?: string;
|
||||
/** ÙÙØ· در Ù
ØÛØ· ØªÙØ³Ø¹Ù / AUTH_RETURN_OTP */
|
||||
/** ÃÂÃÂ÷ ïñ ÃÂ
ÃÂÃÂ÷ êÃÂóùà/ AUTH_RETURN_OTP */
|
||||
devCode?: string;
|
||||
}
|
||||
|
||||
@@ -453,7 +453,7 @@ export interface RegisterChallengeResponse {
|
||||
expiresInSeconds: number;
|
||||
maskedEmail?: string;
|
||||
maskedMobile?: string;
|
||||
/** ÙÙØªÛ سرÙÛØ³ اÛÙ
Û٠خاÙ
ÙØ´ است false â ÙÙØ· OTP Ù
ÙØ¨Ø§ÛÙ ÙØ§Ø²Ù
است */
|
||||
/** ÃÂÃÂêàóñÃÂÃÂó çÃÂÃÂ
ÃÂàîçÃÂ
ÃÂô çóê false â ÃÂÃÂ÷ OTP ÃÂ
ÃÂèçÃÂàÃÂçòÃÂ
çóê */
|
||||
emailOtpRequired?: boolean;
|
||||
devEmailCode?: string;
|
||||
devMobileCode?: string;
|
||||
@@ -531,7 +531,7 @@ export interface UpdateOrganizationRequest {
|
||||
businessField?: BusinessField;
|
||||
}
|
||||
|
||||
/** زÙ
ÛÙÙ ÙØ¹Ø§ÙÛØª سازÙ
ا٠â ÙÙ
âØªØ±Ø§Ø² ØµÙØ§Ûع Ø¯ÛØ¯Ø§Ø± */
|
||||
/** òÃÂ
ÃÂÃÂàÃÂùçÃÂÃÂê óçòÃÂ
çàâ ÃÂÃÂ
âÂÂêñçò õÃÂçÃÂù ïÃÂïçñ */
|
||||
export const BUSINESS_FIELDS = [
|
||||
"education",
|
||||
"beauty",
|
||||
@@ -558,26 +558,26 @@ export const BUSINESS_FIELDS = [
|
||||
export type BusinessField = (typeof BUSINESS_FIELDS)[number];
|
||||
|
||||
export const BUSINESS_FIELD_LABELS: Record<BusinessField, string> = {
|
||||
education: "Ø¢Ù
ÙØ²Ø´Ú¯Ø§Ù Ù Ù
ؤسسات Ø¢Ù
ÙØ²Ø´Û",
|
||||
beauty: "Ú©ÙÛÙÛÚ© Ø²ÛØ¨Ø§ÛÛ Ù Ø¢Ø±Ø§ÛØ´Ú¯Ø§Ù",
|
||||
real_estate: "اÙ
ÙØ§Ú© Ù Ù
Ø´Ø§ÙØ±ÛÙ Ù
سکÙ",
|
||||
construction: "ØµÙØ¹Øª ساختÙ
اÙ",
|
||||
advertising: "تبÙÛØºØ§Øª Ù Ù
Ø´Ø§ÙØ±Ù کسبâÙکار",
|
||||
insurance: "بÛÙ
Ù",
|
||||
consulting: "شرکتâÙØ§Û Ù
Ø´Ø§ÙØ±",
|
||||
startup: "استارتاپ ٠کسبâÙکار Ø¢ÙÙØ§ÛÙ",
|
||||
medical_devices: "تجÙÛØ²Ø§Øª پزشکÛ",
|
||||
travel: "Ú¯Ø±Ø¯Ø´Ú¯Ø±Û Ù Ù
ÙØ§Ø¬Ø±Øª",
|
||||
contractor: "Ù¾ÛÙ
اÙÚ©Ø§Ø±Û Ù Ù¾Ø±ÙÚÙâØ§Û",
|
||||
trading: "بازرگاÙÛ",
|
||||
manufacturing: "تÙÙÛØ¯Û Ù ØµÙØ¹ØªÛ",
|
||||
personal: "کسبâÙکار Ø´Ø®ØµÛ Ù Ø®Ø§ÙÚ¯Û",
|
||||
tech: "ÙØ±Ù
âØ§ÙØ²Ø§Ø± Ù Ø³Ø®ØªâØ§ÙØ²Ø§Ø±",
|
||||
legal: "ÙÚ©ÙØ§ Ù Ù
Ø´Ø§ÙØ±ÛÙ ØÙÙÙÛ",
|
||||
repair: "خدÙ
ات ٠تعÙ
ÛØ±Ø§Øª",
|
||||
retail: "خردÙâÙØ±ÙØ´Û",
|
||||
jewelry: "Ø·ÙØ§ Ù Ø¬ÙØ§Ùر",
|
||||
other: "Ø³Ø§ÛØ±",
|
||||
education: "âÃÂ
ÃÂòôïçààÃÂ
äóóçê âÃÂ
ÃÂòôÃÂ",
|
||||
beauty: "éÃÂÃÂÃÂÃÂé òÃÂèçÃÂààâñçÃÂôïçÃÂ",
|
||||
real_estate: "çÃÂ
ÃÂçé àÃÂ
ôçÃÂñÃÂàÃÂ
óéÃÂ",
|
||||
construction: "õÃÂùê óçîêÃÂ
çÃÂ",
|
||||
advertising: "êèÃÂÃÂúçê àÃÂ
ôçÃÂñàéóèâÂÂÃÂéçñ",
|
||||
insurance: "èÃÂÃÂ
ÃÂ",
|
||||
consulting: "ôñéêâÂÂÃÂçàÃÂ
ôçÃÂñ",
|
||||
startup: "çóêçñêçþ àéóèâÂÂÃÂéçñ âÃÂÃÂçÃÂÃÂ",
|
||||
medical_devices: "êìÃÂÃÂòçê þòôéÃÂ",
|
||||
travel: "ïñïôïñààÃÂ
ÃÂçìñê",
|
||||
contractor: "þÃÂÃÂ
çÃÂéçñààþñÃÂÃÂÃÂâÂÂçÃÂ",
|
||||
trading: "èçòñïçÃÂÃÂ",
|
||||
manufacturing: "êÃÂÃÂÃÂïààõÃÂùêÃÂ",
|
||||
personal: "éóèâÂÂÃÂéçñ ôîõààîçÃÂïÃÂ",
|
||||
tech: "ÃÂñÃÂ
âÂÂçÃÂòçñ àóîêâÂÂçÃÂòçñ",
|
||||
legal: "ÃÂéÃÂç àÃÂ
ôçÃÂñÃÂàÃÂÃÂÃÂÃÂÃÂ",
|
||||
repair: "îïÃÂ
çê àêùÃÂ
ÃÂñçê",
|
||||
retail: "îñïÃÂâÂÂÃÂñÃÂôÃÂ",
|
||||
jewelry: "÷ÃÂç àìÃÂçÃÂñ",
|
||||
other: "óçÃÂñ",
|
||||
};
|
||||
|
||||
export function isBusinessField(value: string): value is BusinessField {
|
||||
@@ -593,7 +593,7 @@ export interface ExchangeRateDto {
|
||||
export interface UpdateOrgCurrenciesRequest {
|
||||
baseCurrency?: string;
|
||||
enabledCurrencies?: string[];
|
||||
/** ÙØ±Ø®âÙØ§ ÙØ³Ø¨Øª ب٠ارز پاÛÙØ ارز پاÛÙ ÙÛØ§Ø²Û Ø¨Ù ÙØ±Ø® ÙØ¯Ø§Ø±Ø¯ */
|
||||
/** ÃÂñîâÂÂÃÂç ÃÂóèê èàçñò þçÃÂÃÂàçñò þçÃÂàÃÂÃÂçòàèàÃÂñî ÃÂïçñï */
|
||||
rates?: Array<{ currency: string; rateToBase: number }>;
|
||||
}
|
||||
|
||||
@@ -602,12 +602,12 @@ export const CURRENCY_CATALOG: Array<{
|
||||
labelFa: string;
|
||||
suffix: string;
|
||||
}> = [
|
||||
{ code: "IRR", labelFa: "Ø±ÛØ§Ù Ø§ÛØ±Ø§Ù", suffix: "Ø±ÛØ§Ù" },
|
||||
{ code: "USD", labelFa: "Ø¯ÙØ§Ø± Ø¢Ù
رÛکا", suffix: "Ø¯ÙØ§Ø±" },
|
||||
{ code: "EUR", labelFa: "ÛÙØ±Ù", suffix: "ÛÙØ±Ù" },
|
||||
{ code: "AED", labelFa: "درÙÙ
اÙ
ارات", suffix: "درÙÙ
" },
|
||||
{ code: "TRY", labelFa: "ÙÛØ± ترکÛÙ", suffix: "ÙÛØ±" },
|
||||
{ code: "GBP", labelFa: "Ù¾ÙÙØ¯ اÙÚ¯ÙÛØ³", suffix: "Ù¾ÙÙØ¯" },
|
||||
{ code: "IRR", labelFa: "ñÃÂçàçÃÂñçÃÂ", suffix: "ñÃÂçÃÂ" },
|
||||
{ code: "USD", labelFa: "ïÃÂçñ âÃÂ
ñÃÂéç", suffix: "ïÃÂçñ" },
|
||||
{ code: "EUR", labelFa: "ÃÂÃÂñÃÂ", suffix: "ÃÂÃÂñÃÂ" },
|
||||
{ code: "AED", labelFa: "ïñÃÂÃÂ
çÃÂ
çñçê", suffix: "ïñÃÂÃÂ
" },
|
||||
{ code: "TRY", labelFa: "ÃÂÃÂñ êñéÃÂÃÂ", suffix: "ÃÂÃÂñ" },
|
||||
{ code: "GBP", labelFa: "þÃÂÃÂï çÃÂïÃÂÃÂó", suffix: "þÃÂÃÂï" },
|
||||
];
|
||||
|
||||
export function currencySuffix(code: string): string {
|
||||
@@ -677,10 +677,10 @@ export const PERSON_MOODS = ["newcomer", "happy", "unhappy", "special"] as const
|
||||
export type PersonMood = (typeof PERSON_MOODS)[number];
|
||||
|
||||
export const PERSON_MOOD_LABELS: Record<PersonMood, string> = {
|
||||
newcomer: "Ù
Ø´ØªØ±Û ØªØ§Ø²Ù ÙØ§Ø±Ø¯",
|
||||
happy: "Ù
Ø´ØªØ±Û Ø®ÙØ´ØØ§Ù",
|
||||
unhappy: "Ù
Ø´ØªØ±Û ÙØ§Ø±Ø§Ø¶Û",
|
||||
special: "Ù
Ø´ØªØ±Û Ø®Ø§Øµ",
|
||||
newcomer: "ÃÂ
ôêñàêçòàÃÂçñï",
|
||||
happy: "ÃÂ
ôêñàîÃÂôÃÂçÃÂ",
|
||||
unhappy: "ÃÂ
ôêñàÃÂçñçöÃÂ",
|
||||
special: "ÃÂ
ôêñàîçõ",
|
||||
};
|
||||
|
||||
export interface PersonDto {
|
||||
@@ -777,7 +777,7 @@ export interface DealDto {
|
||||
person: PersonSummaryDto | null;
|
||||
company: CompanySummaryDto | null;
|
||||
owner: UserSummaryDto | null;
|
||||
/** Ù
سئÙÙØ§Ù Ù
شترک Ù
عاÙ
ÙÙ (Ø¹ÙØ§Ù٠بر Ù
اÙÚ© اصÙÛ) */
|
||||
/** ÃÂ
óæÃÂÃÂçàÃÂ
ôêñé ÃÂ
ùçÃÂ
ÃÂà(ùÃÂçÃÂàèñ ÃÂ
çÃÂé çõÃÂÃÂ) */
|
||||
assignees: UserSummaryDto[];
|
||||
lineItems: DealLineItemDto[];
|
||||
createdAt: string;
|
||||
@@ -849,7 +849,7 @@ export interface UpdateDealRequest {
|
||||
lineItems?: DealLineItemInput[];
|
||||
}
|
||||
|
||||
/** ÙÛÙØªØ± Ø°Ø®ÛØ±ÙâØ´Ø¯ÙÙ ÙÛØ³Øª اشخاص */
|
||||
/** ÃÂÃÂÃÂêñ ðîÃÂñÃÂâÂÂôïÃÂàÃÂÃÂóê çôîçõ */
|
||||
export interface PeopleViewFilters {
|
||||
q?: string;
|
||||
sort?: string;
|
||||
@@ -857,7 +857,7 @@ export interface PeopleViewFilters {
|
||||
page?: number;
|
||||
}
|
||||
|
||||
/** ÙÛÙØªØ± Ø°Ø®ÛØ±ÙâØ´Ø¯ÙÙ Ú©Ø§Ø±ÛØ² / Ù
عاÙ
ÙØ§Øª */
|
||||
/** ÃÂÃÂÃÂêñ ðîÃÂñÃÂâÂÂôïÃÂàéçñÃÂò / ÃÂ
ùçÃÂ
ÃÂçê */
|
||||
export interface DealsViewFilters {
|
||||
q?: string;
|
||||
amountMin?: string;
|
||||
@@ -1014,7 +1014,7 @@ export interface NoteDto {
|
||||
title: string | null;
|
||||
body: string;
|
||||
noteType: NoteType | string;
|
||||
/** team = تÛÙ
Û | personal = ÙÙØ· ÙÙÛØ³Ùد٠*/
|
||||
/** team = êÃÂÃÂ
à| personal = ÃÂÃÂ÷ ÃÂÃÂÃÂóÃÂïà*/
|
||||
visibility: NoteVisibility;
|
||||
pinned: boolean;
|
||||
color: string | null;
|
||||
@@ -1029,7 +1029,7 @@ export interface NoteDto {
|
||||
activity: { id: string; title: string } | null;
|
||||
author: UserSummaryDto | null;
|
||||
attachments: NoteAttachmentDto[];
|
||||
/** تعداد ÙØ³Ø®ÙâÙØ§Û ÙØ¨ÙÛ (Ø¨Ø±Ø§Û ÙÙ
Ø§ÛØ´ دکÙ
Ù ØªØ§Ø±ÛØ®ÚÙ) */
|
||||
/** êùïçï ÃÂóîÃÂâÂÂÃÂçàÃÂèÃÂà(èñçàÃÂÃÂ
çÃÂô ïéÃÂ
àêçñÃÂîÃÂÃÂ) */
|
||||
revisionCount?: number;
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
@@ -1040,8 +1040,8 @@ export type NoteVisibility = "team" | "personal";
|
||||
export const NOTE_VISIBILITIES: NoteVisibility[] = ["team", "personal"];
|
||||
|
||||
export const NOTE_VISIBILITY_LABELS: Record<NoteVisibility, string> = {
|
||||
team: "تÛÙ
Û",
|
||||
personal: "Ø´Ø®ØµÛ (ÙÙØ· Ù
Ù)",
|
||||
team: "êÃÂÃÂ
ÃÂ",
|
||||
personal: "ôîõà(ÃÂÃÂ÷ ÃÂ
ÃÂ)",
|
||||
};
|
||||
|
||||
export interface NoteRevisionDto {
|
||||
@@ -1865,7 +1865,7 @@ export interface CreateSalesGoalRequest {
|
||||
probability?: number | null;
|
||||
currency?: string;
|
||||
notes?: string;
|
||||
/** ÙÙØ· Ù
اÙÚ©/Ù
Ø¯ÛØ±Ø در ØºÛØ± اÛÙ ØµÙØ±Øª ÙØ¯Ù Ø¨Ø±Ø§Û Ø®ÙØ¯ کاربر */
|
||||
/** ÃÂÃÂ÷ ÃÂ
çÃÂé/ÃÂ
ïÃÂñàïñ úÃÂñ çÃÂàõÃÂñê ÃÂïàèñçàîÃÂï éçñèñ */
|
||||
userId?: string | null;
|
||||
}
|
||||
|
||||
@@ -1896,13 +1896,13 @@ export interface SalesForecastDto {
|
||||
periodStart: string;
|
||||
periodEnd: string;
|
||||
currency: string;
|
||||
/** Ù
جÙ
ÙØ¹ Ø§ÙØ¯Ø§Ù ÙÙ
âÙ¾ÙØ´Ø§Ù با باز٠*/
|
||||
/** ÃÂ
ìÃÂ
ÃÂù çÃÂïçàÃÂÃÂ
âÂÂþÃÂôçàèç èçòà*/
|
||||
targetAmount: number;
|
||||
/** Ù
عاÙ
ÙØ§Øª Ø¨Ø±ÙØ¯ÙâØ´Ø¯Ù Ø¯Ø± باز٠*/
|
||||
/** ÃÂ
ùçÃÂ
ÃÂçê èñÃÂïÃÂâÂÂôïàïñ èçòà*/
|
||||
wonAmount: number;
|
||||
/** Ù
عاÙ
ÙØ§Øª باز ÙØ¹ÙÛ */
|
||||
/** ÃÂ
ùçÃÂ
ÃÂçê èçò ÃÂùÃÂà*/
|
||||
openPipelineAmount: number;
|
||||
/** Ù¾ÛØ´âبÛÙÛ: تØÙÙ + Ú©Ø§Ø±ÛØ² باز à Ù
ÛØ§ÙÚ¯ÛÙ Ø§ØØªÙ
ا٠*/
|
||||
/** þÃÂôâÂÂèÃÂÃÂÃÂ: êÃÂÃÂà+ éçñÃÂò èçò àÃÂ
ÃÂçÃÂïÃÂàçÃÂêÃÂ
çà*/
|
||||
forecastAmount: number;
|
||||
progressPercent: number | null;
|
||||
openDealsCount: number;
|
||||
@@ -1910,7 +1910,7 @@ export interface SalesForecastDto {
|
||||
goals: SalesGoalDto[];
|
||||
kpis: SalesForecastKpiDto[];
|
||||
newCustomersCount: number;
|
||||
/** Ù
عاÙ
ÙØ§Øª Ø§ÛØ¬Ø§Ø¯Ø´Ø¯Ù در باز٠*/
|
||||
/** ÃÂ
ùçÃÂ
ÃÂçê çÃÂìçïôïàïñ èçòà*/
|
||||
newDealsCount: number;
|
||||
}
|
||||
|
||||
@@ -2011,7 +2011,7 @@ export interface UpdateFaqArticleRequest {
|
||||
position?: number;
|
||||
}
|
||||
|
||||
/** ساعات Ù
ÙÙØª پاسخ اÙ٠بر اساس اÙÙÙÛØª */
|
||||
/** óçùçê ÃÂ
ÃÂÃÂê þçóî çÃÂàèñ çóçó çÃÂÃÂÃÂÃÂê */
|
||||
export const TICKET_SLA_HOURS: Record<TicketPriority, number> = {
|
||||
urgent: 4,
|
||||
high: 8,
|
||||
@@ -2019,7 +2019,7 @@ export const TICKET_SLA_HOURS: Record<TicketPriority, number> = {
|
||||
low: 48,
|
||||
};
|
||||
|
||||
/* âââ پرتا٠Ù
Ø´ØªØ±Û (OTP) âââ */
|
||||
/* âÂÂâÂÂâ þñêçàÃÂ
ôêñà(OTP) âÂÂâÂÂâ */
|
||||
|
||||
export interface PortalOrgInfoDto {
|
||||
name: string;
|
||||
@@ -2032,7 +2032,7 @@ export interface PortalRequestOtpRequest {
|
||||
|
||||
export interface PortalRequestOtpResponse {
|
||||
ok: true;
|
||||
/** ÙÙØ· در ØØ§Ùت ØªÙØ³Ø¹Ù / دÙ
Ù ÙÙØªÛ SMS ÙØ§ÙØ¹Û ÙØµÙ ÙÛØ³Øª */
|
||||
/** ÃÂÃÂ÷ ïñ ÃÂçÃÂê êÃÂóùà/ ïÃÂ
àÃÂÃÂêàSMS ÃÂçÃÂùàÃÂõàÃÂÃÂóê */
|
||||
devCode?: string;
|
||||
expiresInSeconds: number;
|
||||
}
|
||||
@@ -2089,7 +2089,7 @@ export interface PortalTicketDto {
|
||||
updatedAt: string;
|
||||
}
|
||||
|
||||
/* âââ گزارشات Ù Ø¯Ø§Ø´Ø¨ÙØ±Ø¯ âââ */
|
||||
/* âÂÂâÂÂâ ïòçñôçê àïçôèÃÂñï âÂÂâÂÂâ */
|
||||
|
||||
export interface ReportsKpiDto {
|
||||
key: string;
|
||||
@@ -2127,7 +2127,7 @@ export interface ReportsTeamRowDto {
|
||||
activitiesDone: number;
|
||||
}
|
||||
|
||||
/** Ú¯ÙÙÙâÙØ§Û drill-down گزارش عÙ
ÛÙ (ÙØ§Ø² Û± BI) */
|
||||
/** ïÃÂÃÂÃÂâÂÂÃÂçàdrill-down ïòçñô ùÃÂ
ÃÂà(ÃÂçò ñ BI) */
|
||||
export type ReportsDrillKind =
|
||||
| "stage_open"
|
||||
| "team_won"
|
||||
@@ -2152,25 +2152,25 @@ export interface ReportsFunnelStageDto {
|
||||
pipelineName: string;
|
||||
count: number;
|
||||
amount: number;
|
||||
/** درصد تبدÛÙ ÙØ³Ø¨Øª ب٠Ù
رØÙÙ ÙØ¨Ù ÙÙ
Ø§Ù Ú©Ø§Ø±ÛØ²Ø null Ø¨Ø±Ø§Û Ø§ÙÙÛÙ Ù
رØÙÙ */
|
||||
/** ïñõï êèïÃÂàÃÂóèê èàÃÂ
ñÃÂÃÂàÃÂèàÃÂÃÂ
çàéçñÃÂòànull èñçàçÃÂÃÂÃÂàÃÂ
ñÃÂÃÂà*/
|
||||
conversionFromPrevPercent: number | null;
|
||||
/** سÙÙ
از Ú©Ù Ù
عاÙ
ÙØ§Øª باز ÙÙ
Ø§Ù Ú©Ø§Ø±ÛØ² */
|
||||
/** óÃÂÃÂ
çò éàÃÂ
ùçÃÂ
ÃÂçê èçò ÃÂÃÂ
çàéçñÃÂò */
|
||||
shareOfPipelinePercent: number;
|
||||
}
|
||||
|
||||
/** ÛÚ© ردÛÙ ÙØ±Ø® تبدÛÙ (ÙØ±ÙØ¯Û â Ù
ÙÙÙ) Ù
Ø«Ù Ø¯ÛØ¯Ø§Ø± */
|
||||
/** ÃÂé ñïÃÂàÃÂñî êèïÃÂà(ÃÂñÃÂïàâ ÃÂ
ÃÂÃÂÃÂ) ÃÂ
ëàïÃÂïçñ */
|
||||
export interface ReportsConversionRateRowDto {
|
||||
key: string;
|
||||
label: string;
|
||||
incomingCount: number;
|
||||
wonCount: number;
|
||||
/** Ø¯Ø±ØµØ¯Ø Ø§Ú¯Ø± ÙØ±ÙØ¯Û ØµÙØ± باشد Û° */
|
||||
/** ïñõïàçïñ ÃÂñÃÂïàõÃÂñ èçôï ð */
|
||||
conversionPercent: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* ÙØ±Ø® تبدÛ٠ب٠سبک Ø¯ÛØ¯Ø§Ø±:
|
||||
* از Ù
عاÙ
ÙØ§Øª تازÙâØ³Ø§Ø®ØªÙâØ´Ø¯Ù Ø¯Ø± Ø¨Ø§Ø²ÙØ ÚÙØ¯ درصد Ø§ÙØ§Ù Ø¨Ø±ÙØ¯Ù شدÙâØ§ÙØ¯.
|
||||
* ÃÂñî êèïÃÂàèàóèé ïÃÂïçñ:
|
||||
* çò ÃÂ
ùçÃÂ
ÃÂçê êçòÃÂâÂÂóçîêÃÂâÂÂôïàïñ èçòÃÂàÃÂÃÂï ïñõï çÃÂçàèñÃÂïàôïÃÂâÂÂçÃÂï.
|
||||
*/
|
||||
export interface ReportsConversionRateDto {
|
||||
incomingCount: number;
|
||||
@@ -2192,7 +2192,7 @@ export interface ReportsPeriodCompareRowDto {
|
||||
current: number;
|
||||
previous: number;
|
||||
changePercent: number | null;
|
||||
/** اگر ÙØ§Ø¨Ù Ú©ÙÛÚ© Ø¨Ø±Ø§Û ÙÛØ³Øª پرÙÙØ¯Ù باشد */
|
||||
/** çïñ ÃÂçèàéÃÂÃÂé èñçàÃÂÃÂóê þñÃÂÃÂïàèçôï */
|
||||
drillKind?: ReportsDrillKind;
|
||||
}
|
||||
|
||||
@@ -2249,9 +2249,9 @@ export interface ReportsDashboardDto {
|
||||
winRate: number;
|
||||
};
|
||||
funnel: ReportsFunnelStageDto[];
|
||||
/** ÙØ±Ø® تبدÛÙ ÙØ±ÙدÛâÙ
ÙÙÙ (سبک Ø¯ÛØ¯Ø§Ø±) */
|
||||
/** ÃÂñî êèïÃÂàÃÂñÃÂïÃÂâÂÂÃÂ
ÃÂÃÂà(óèé ïÃÂïçñ) */
|
||||
conversionRate: ReportsConversionRateDto;
|
||||
/** Ù
ÙØ§ÛØ³Ù ØµØ±ÛØ Ø¨Ø§Ø²Ù ÙØ¹ÙÛ Ø¨Ø§ Ø¯ÙØ±Ù ÙØ¨Ù ÙÙ
âØ·ÙÙ */
|
||||
/** ÃÂ
ÃÂçÃÂóàõñÃÂàèçòàÃÂùÃÂàèç ïÃÂñàÃÂèàÃÂÃÂ
âÂÂ÷ÃÂà*/
|
||||
periodCompare: ReportsPeriodCompareRowDto[];
|
||||
tickets: {
|
||||
open: number;
|
||||
@@ -2309,7 +2309,7 @@ export interface HomeDashboardDto {
|
||||
topCustomers: HomeDashboardTopCustomerDto[];
|
||||
}
|
||||
|
||||
/** برد پرÙÚÙ / Ú©Ø§Ø±ÛØ² کارت */
|
||||
/** èñï þñÃÂÃÂà/ éçñÃÂò éçñê */
|
||||
export interface ProjectBoardStageDto {
|
||||
id: string;
|
||||
name: string;
|
||||
@@ -2373,7 +2373,7 @@ export interface MoveProjectCardRequest {
|
||||
position?: number;
|
||||
}
|
||||
|
||||
/** باشگا٠Ù
Ø´ØªØ±ÛØ§Ù */
|
||||
/** èçôïçàÃÂ
ôêñÃÂçà*/
|
||||
export interface LoyaltyTierDto {
|
||||
id: string;
|
||||
name: string;
|
||||
@@ -2476,7 +2476,7 @@ export interface RedeemLoyaltyRewardRequest {
|
||||
personId: string;
|
||||
}
|
||||
|
||||
/** اتÙÙ
اسÛÙ٠اگر/Ø¢Ùگا٠*/
|
||||
/** çêÃÂÃÂ
çóÃÂÃÂàçïñ/âÃÂïçà*/
|
||||
export type AutomationTrigger =
|
||||
| "person_created"
|
||||
| "lead_submitted"
|
||||
@@ -2495,23 +2495,23 @@ export type AutomationAction =
|
||||
| "add_loyalty_points";
|
||||
|
||||
export const AUTOMATION_TRIGGER_LABELS: Record<AutomationTrigger, string> = {
|
||||
person_created: "Ù
خاطب Ø¬Ø¯ÛØ¯ ساخت٠شد",
|
||||
lead_submitted: "ÙØ±Ù
Ø³Ø±ÙØ® ارسا٠شد",
|
||||
deal_created: "Ù
عاÙ
ÙÙ Ø¬Ø¯ÛØ¯ ساخت٠شد",
|
||||
deal_stage_changed: "Ù
رØÙÙ Ù
عاÙ
ÙÙ Ø¹ÙØ¶ شد",
|
||||
deal_won: "Ù
عاÙ
ÙÙ Ø¨Ø±ÙØ¯Ù شد",
|
||||
deal_lost: "Ù
عاÙ
Ù٠باخت",
|
||||
ticket_created: "تÛکت Ø¬Ø¯ÛØ¯ ساخت٠شد",
|
||||
ticket_resolved: "تÛکت ØÙ شد",
|
||||
invoice_issued: "ÙØ§Ú©ØªÙر صادر شد",
|
||||
invoice_paid: "پرداخت رÙÛ ÙØ§Ú©ØªÙر ثبت شد",
|
||||
activity_done: "ÙØ¹Ø§ÙÛØª تÙ
اÙ
شد",
|
||||
person_created: "ÃÂ
îç÷è ìïÃÂï óçîêàôï",
|
||||
lead_submitted: "ÃÂñÃÂ
óñÃÂî çñóçàôï",
|
||||
deal_created: "ÃÂ
ùçÃÂ
ÃÂàìïÃÂï óçîêàôï",
|
||||
deal_stage_changed: "ÃÂ
ñÃÂÃÂàÃÂ
ùçÃÂ
ÃÂàùÃÂö ôï",
|
||||
deal_won: "ÃÂ
ùçÃÂ
ÃÂàèñÃÂïàôï",
|
||||
deal_lost: "ÃÂ
ùçÃÂ
ÃÂàèçîê",
|
||||
ticket_created: "êÃÂéê ìïÃÂï óçîêàôï",
|
||||
ticket_resolved: "êÃÂéê ÃÂàôï",
|
||||
invoice_issued: "ÃÂçéêÃÂñ õçïñ ôï",
|
||||
invoice_paid: "þñïçîê ñÃÂàÃÂçéêÃÂñ ëèê ôï",
|
||||
activity_done: "ÃÂùçÃÂÃÂê êÃÂ
çÃÂ
ôï",
|
||||
};
|
||||
|
||||
export const AUTOMATION_ACTION_LABELS: Record<AutomationAction, string> = {
|
||||
create_activity: "ساخت ÙØ¹Ø§ÙÛØª",
|
||||
create_notification: "Ø§Ø±Ø³Ø§Ù Ø§Ø¹ÙØ§Ù",
|
||||
add_loyalty_points: "Ø§ÙØ²Ùد٠اÙ
ØªÛØ§Ø² باشگاÙ",
|
||||
create_activity: "óçîê ÃÂùçÃÂÃÂê",
|
||||
create_notification: "çñóçàçùÃÂçÃÂ",
|
||||
add_loyalty_points: "çÃÂòÃÂïàçÃÂ
êÃÂçò èçôïçÃÂ",
|
||||
};
|
||||
|
||||
export const MAX_AUTOMATION_STEPS = 8;
|
||||
@@ -2540,14 +2540,14 @@ export const AUTOMATION_TRIGGER_GROUPS: {
|
||||
label: string;
|
||||
items: AutomationTrigger[];
|
||||
}[] = [
|
||||
{ label: "Ù
خاطب", items: ["person_created", "lead_submitted"] },
|
||||
{ label: "ÃÂ
îç÷è", items: ["person_created", "lead_submitted"] },
|
||||
{
|
||||
label: "Ù
عاÙ
ÙÙ",
|
||||
label: "ÃÂ
ùçÃÂ
ÃÂÃÂ",
|
||||
items: ["deal_created", "deal_stage_changed", "deal_won", "deal_lost"],
|
||||
},
|
||||
{ label: "تÛکت", items: ["ticket_created", "ticket_resolved"] },
|
||||
{ label: "ÙØ¹Ø§ÙÛØª", items: ["activity_done"] },
|
||||
{ label: "Ù
اÙÛ", items: ["invoice_issued", "invoice_paid"] },
|
||||
{ label: "êÃÂéê", items: ["ticket_created", "ticket_resolved"] },
|
||||
{ label: "ÃÂùçÃÂÃÂê", items: ["activity_done"] },
|
||||
{ label: "ÃÂ
çÃÂÃÂ", items: ["invoice_issued", "invoice_paid"] },
|
||||
];
|
||||
|
||||
export type AutomationStepKind = "action" | "condition";
|
||||
@@ -2573,31 +2573,31 @@ export const AUTOMATION_CONDITION_FIELD_LABELS: Record<
|
||||
AutomationConditionField,
|
||||
string
|
||||
> = {
|
||||
deal_amount: "Ù
Ø¨ÙØº Ù
عاÙ
ÙÙ",
|
||||
has_person: "Ù
خاطب دارد",
|
||||
has_company: "شرکت دارد",
|
||||
ticket_priority: "اÙÙÙÛØª تÛکت",
|
||||
deal_amount: "ÃÂ
èÃÂú ÃÂ
ùçÃÂ
ÃÂÃÂ",
|
||||
has_person: "ÃÂ
îç÷è ïçñï",
|
||||
has_company: "ôñéê ïçñï",
|
||||
ticket_priority: "çÃÂÃÂÃÂÃÂê êÃÂéê",
|
||||
};
|
||||
|
||||
export const AUTOMATION_CONDITION_OP_LABELS: Record<
|
||||
AutomationConditionOp,
|
||||
string
|
||||
> = {
|
||||
gte: "Ø¨Ø²Ø±Ú¯âØªØ± ÛØ§ Ù
ساÙÛ",
|
||||
lte: "Ú©ÙÚÚ©âØªØ± ÛØ§ Ù
ساÙÛ",
|
||||
eq: "Ù
ساÙÛ",
|
||||
neq: "ÙØ§Ù
ساÙÛ",
|
||||
is_set: "دارد",
|
||||
is_empty: "ÙØ¯Ø§Ø±Ø¯",
|
||||
gte: "èòñïâÂÂêñ ÃÂç ÃÂ
óçÃÂÃÂ",
|
||||
lte: "éÃÂÃÂéâÂÂêñ ÃÂç ÃÂ
óçÃÂÃÂ",
|
||||
eq: "ÃÂ
óçÃÂÃÂ",
|
||||
neq: "ÃÂçÃÂ
óçÃÂÃÂ",
|
||||
is_set: "ïçñï",
|
||||
is_empty: "ÃÂïçñï",
|
||||
};
|
||||
|
||||
export const AUTOMATION_NOTIFY_CHANNEL_LABELS: Record<
|
||||
AutomationNotifyChannel,
|
||||
string
|
||||
> = {
|
||||
app: "ÙØ§ØªÛÙÛÚ©ÛØ´Ù داخÙÛ",
|
||||
sms: "Ù¾ÛØ§Ù
Ú©",
|
||||
both: "ÙØ± دÙ",
|
||||
app: "ÃÂçêÃÂÃÂÃÂéÃÂôàïçîÃÂÃÂ",
|
||||
sms: "þÃÂçÃÂ
é",
|
||||
both: "ÃÂñ ïÃÂ",
|
||||
};
|
||||
|
||||
export const AUTOMATION_NOTIFY_CHANNELS = [
|
||||
@@ -2660,7 +2660,7 @@ export interface AutomationRuleConfig {
|
||||
notifyTarget?: AutomationNotifyTarget;
|
||||
activityType?: "call" | "meeting" | "task" | "note";
|
||||
points?: number;
|
||||
/** Ø²ÙØ¬ÛرÙ٠اعÙ
Ø§ÙØ اگر خاÙÛ Ø¨Ø§Ø´Ø¯ ÙÙ
ا٠action ØªÚ©Û Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯ */
|
||||
/** òÃÂìÃÂñÃÂàçùÃÂ
çÃÂàçïñ îçÃÂàèçôï ÃÂÃÂ
çàaction êéàçóêÃÂçïàÃÂ
ÃÂâÂÂôÃÂï */
|
||||
steps?: AutomationStep[];
|
||||
}
|
||||
|
||||
@@ -2756,7 +2756,7 @@ export function automationStepToConfig(step: AutomationStep): AutomationRuleConf
|
||||
};
|
||||
}
|
||||
|
||||
// ââ ØªÙâØØ³Ø§Ø¨ / ØØ³Ø§Ø¨Ø¯Ø§Ø±Û ââ
|
||||
// âÂÂâ êÃÂâÂÂÃÂóçè / ÃÂóçèïçñàâÂÂâÂÂ
|
||||
|
||||
export const TAHSAB_SANAD_TYPES = [
|
||||
"buy_sale_gold",
|
||||
@@ -2769,11 +2769,11 @@ export const TAHSAB_SANAD_TYPES = [
|
||||
export type TahesabSanadType = (typeof TAHSAB_SANAD_TYPES)[number];
|
||||
|
||||
export const TAHSAB_SANAD_LABELS: Record<TahesabSanadType, string> = {
|
||||
buy_sale_gold: "Ø®Ø±ÛØ¯/ÙØ±ÙØ´ آبشدÙ",
|
||||
buy_sale_sekeh: "Ø®Ø±ÛØ¯/ÙØ±ÙØ´ سکÙ",
|
||||
talab_bedehi: "Ø·ÙØ¨/بدÙÛ",
|
||||
vkh_gold: "ÙØ§Ø±Ûز/Ø®Ø±ÙØ¬ Ø·ÙØ§",
|
||||
vkh_bank: "ÙØ§Ø±Ûز/Ø®Ø±ÙØ¬ باÙÚ©Û",
|
||||
buy_sale_gold: "îñÃÂï/ÃÂñÃÂô âèôïÃÂ",
|
||||
buy_sale_sekeh: "îñÃÂï/ÃÂñÃÂô óéÃÂ",
|
||||
talab_bedehi: "÷ÃÂè/èïÃÂÃÂ",
|
||||
vkh_gold: "ÃÂçñÃÂò/îñÃÂì ÷ÃÂç",
|
||||
vkh_bank: "ÃÂçñÃÂò/îñÃÂì èçÃÂéÃÂ",
|
||||
};
|
||||
|
||||
export interface TahesabConnectionDto {
|
||||
@@ -2822,7 +2822,8 @@ export interface PersonAccountingLinkDto {
|
||||
export interface MandehValueDto {
|
||||
amount: string | number;
|
||||
unit: string;
|
||||
status: "بس" | "بد";
|
||||
/** بس = بستانکار | بد = بدهکار */
|
||||
status: "بس" | "بد" | string;
|
||||
}
|
||||
|
||||
export interface MandehDetailItemDto {
|
||||
@@ -2843,7 +2844,7 @@ export interface PersonAssetsDto {
|
||||
fetchedAt: string;
|
||||
}
|
||||
|
||||
// ââ Ù¾ÛØ§Ù
Ø®ÙØ¯Ú©Ø§Ø± (جدا از اتÙÙ
اسÛÙ٠گردش کار) ââ
|
||||
// âÂÂâ þÃÂçÃÂ
îÃÂïéçñ (ìïç çò çêÃÂÃÂ
çóÃÂÃÂàïñïô éçñ) âÂÂâÂÂ
|
||||
|
||||
export type MessageAutomationTrigger =
|
||||
| "person_created"
|
||||
@@ -2887,37 +2888,37 @@ export const MESSAGE_AUTOMATION_TRIGGER_LABELS: Record<
|
||||
MessageAutomationTrigger,
|
||||
string
|
||||
> = {
|
||||
person_created: "Ù
خاطب Ø¬Ø¯ÛØ¯ ساخت٠شد",
|
||||
lead_submitted: "ÙØ±Ù
Ø³Ø±ÙØ® ارسا٠شد",
|
||||
deal_created: "Ù
عاÙ
ÙÙ Ø¬Ø¯ÛØ¯ ساخت٠شد",
|
||||
deal_stage_changed: "Ù
رØÙÙ Ù
عاÙ
ÙÙ Ø¹ÙØ¶ شد",
|
||||
deal_won: "Ù
عاÙ
ÙÙ Ø¨Ø±ÙØ¯Ù شد",
|
||||
deal_lost: "Ù
عاÙ
Ù٠باخت",
|
||||
ticket_created: "تÛکت Ø¬Ø¯ÛØ¯ ساخت٠شد",
|
||||
ticket_resolved: "تÛکت ØÙ شد",
|
||||
invoice_issued: "ÙØ§Ú©ØªÙر صادر شد",
|
||||
invoice_paid: "پرداخت رÙÛ ÙØ§Ú©ØªÙر ثبت شد",
|
||||
activity_created: "ÙØ¹Ø§ÙÛØª ثبت شد",
|
||||
activity_done: "ÙØ¹Ø§ÙÛØª تÙ
اÙ
شد",
|
||||
person_created: "ÃÂ
îç÷è ìïÃÂï óçîêàôï",
|
||||
lead_submitted: "ÃÂñÃÂ
óñÃÂî çñóçàôï",
|
||||
deal_created: "ÃÂ
ùçÃÂ
ÃÂàìïÃÂï óçîêàôï",
|
||||
deal_stage_changed: "ÃÂ
ñÃÂÃÂàÃÂ
ùçÃÂ
ÃÂàùÃÂö ôï",
|
||||
deal_won: "ÃÂ
ùçÃÂ
ÃÂàèñÃÂïàôï",
|
||||
deal_lost: "ÃÂ
ùçÃÂ
ÃÂàèçîê",
|
||||
ticket_created: "êÃÂéê ìïÃÂï óçîêàôï",
|
||||
ticket_resolved: "êÃÂéê ÃÂàôï",
|
||||
invoice_issued: "ÃÂçéêÃÂñ õçïñ ôï",
|
||||
invoice_paid: "þñïçîê ñÃÂàÃÂçéêÃÂñ ëèê ôï",
|
||||
activity_created: "ÃÂùçÃÂÃÂê ëèê ôï",
|
||||
activity_done: "ÃÂùçÃÂÃÂê êÃÂ
çÃÂ
ôï",
|
||||
};
|
||||
|
||||
export const MESSAGE_AUTOMATION_UNIT_LABELS: Record<
|
||||
MessageAutomationDelayUnit,
|
||||
string
|
||||
> = {
|
||||
minutes: "دÙÛÙÙ",
|
||||
hours: "ساعت",
|
||||
days: "Ø±ÙØ²",
|
||||
weeks: "ÙÙØªÙ",
|
||||
months: "Ù
اÙ",
|
||||
minutes: "ïÃÂÃÂÃÂÃÂ",
|
||||
hours: "óçùê",
|
||||
days: "ñÃÂò",
|
||||
weeks: "ÃÂÃÂêÃÂ",
|
||||
months: "ÃÂ
çÃÂ",
|
||||
};
|
||||
|
||||
export const MESSAGE_AUTOMATION_FIELDS = [
|
||||
{ token: "{ÙØ§Ù
}", label: "ÙØ§Ù
Ù
شترÛ" },
|
||||
{ token: "{Ø´Ù
ارÙ}", label: "Ø´Ù
ار٠Ù
ÙØ¨Ø§ÛÙ" },
|
||||
{ token: "{ØªØ§Ø±ÛØ®}", label: "ØªØ§Ø±ÛØ® ارساÙ" },
|
||||
{ token: "{عÙÙØ§Ù}", label: "عÙÙØ§Ù Ø±Ú©ÙØ±Ø¯" },
|
||||
{ token: "{شرکت}", label: "ÙØ§Ù
شرکت" },
|
||||
{ token: "{ÃÂçÃÂ
}", label: "ÃÂçÃÂ
ÃÂ
ôêñÃÂ" },
|
||||
{ token: "{ôÃÂ
çñÃÂ}", label: "ôÃÂ
çñàÃÂ
ÃÂèçÃÂÃÂ" },
|
||||
{ token: "{êçñÃÂî}", label: "êçñÃÂî çñóçÃÂ" },
|
||||
{ token: "{ùÃÂÃÂçÃÂ}", label: "ùÃÂÃÂçàñéÃÂñï" },
|
||||
{ token: "{ôñéê}", label: "ÃÂçÃÂ
ôñéê" },
|
||||
] as const;
|
||||
|
||||
export const MESSAGE_AUTOMATION_SMS_SEGMENT = 70;
|
||||
@@ -2926,18 +2927,18 @@ export const MESSAGE_AUTOMATION_CHANNEL_LABELS: Record<
|
||||
MessageAutomationChannel,
|
||||
string
|
||||
> = {
|
||||
app: "ÙØ§ØªÛÙ Ø¯Ø§Ø®Ù Ø¨Ø±ÙØ§Ù
Ù",
|
||||
sms: "Ù¾ÛØ§Ù
Ú©",
|
||||
both: "Ù¾ÛØ§Ù
Ú© Ù ÙØ§ØªÛÙ",
|
||||
app: "ÃÂçêÃÂàïçîàèñÃÂçÃÂ
ÃÂ",
|
||||
sms: "þÃÂçÃÂ
é",
|
||||
both: "þÃÂçÃÂ
é àÃÂçêÃÂÃÂ",
|
||||
};
|
||||
|
||||
export const MESSAGE_AUTOMATION_TARGET_LABELS: Record<
|
||||
MessageAutomationTarget,
|
||||
string
|
||||
> = {
|
||||
staff: "Ù
سئÙ٠پرÙÙØ¯Ù",
|
||||
person: "Ù
شترÛ",
|
||||
both: "Ù
Ø´ØªØ±Û Ù Ù
سئÙÙ",
|
||||
staff: "ÃÂ
óæÃÂàþñÃÂÃÂïÃÂ",
|
||||
person: "ÃÂ
ôêñÃÂ",
|
||||
both: "ÃÂ
ôêñààÃÂ
óæÃÂÃÂ",
|
||||
};
|
||||
|
||||
export interface MessageAutomationRuleDto {
|
||||
@@ -3064,7 +3065,7 @@ export interface PlatformUserDto {
|
||||
lastLoginAt?: string | null;
|
||||
createdAt: string;
|
||||
memberships: PlatformUserMembershipDto[];
|
||||
/** ÙÙØ· اگر ØØ¯Ø§ÙÙ ÛÚ© عضÙÛØª Ù
اÙÚ© ÙØ¹Ø§Ù دارد */
|
||||
/** ÃÂÃÂ÷ çïñ ÃÂïçÃÂàÃÂé ùöÃÂÃÂê ÃÂ
çÃÂé ÃÂùçàïçñï */
|
||||
isBillingOwner?: boolean;
|
||||
billing?: BillingAccountDto | null;
|
||||
}
|
||||
@@ -3101,7 +3102,7 @@ export { brand, APP_NAME, APP_NAME_FA, brandSuggestionFa } from "./brand";
|
||||
export type { Brand } from "./brand";
|
||||
export const API_PREFIX = "api";
|
||||
|
||||
/* âââ ÙØ§Ú¯ ÙØ¹Ø§ÙÛØª کاربرا٠âââ */
|
||||
/* âÂÂâÂÂâ ÃÂçï ÃÂùçÃÂÃÂê éçñèñçàâÂÂâÂÂâ */
|
||||
|
||||
export interface AuditLogDto {
|
||||
id: string;
|
||||
@@ -3123,7 +3124,7 @@ export interface AuditLogListResponse {
|
||||
limit: number;
|
||||
}
|
||||
|
||||
/* âââ ÙÛÙØªØ±ÙØ§Û Ø°Ø®ÛØ±ÙâØ´Ø¯Ù âââ */
|
||||
/* âÂÂâÂÂâ ÃÂÃÂÃÂêñÃÂçàðîÃÂñÃÂâÂÂôïàâÂÂâÂÂâ */
|
||||
|
||||
export type SavedViewScope =
|
||||
| "deals"
|
||||
@@ -3142,7 +3143,7 @@ export const SAVED_VIEW_SCOPES: SavedViewScope[] = [
|
||||
"reports",
|
||||
];
|
||||
|
||||
/** ÙÛÙØªØ±ÙØ§Û Ø°Ø®ÛØ±ÙâØ´Ø¯ÙÙ ØµÙØÙ Ú¯Ø²Ø§Ø±Ø´Ø§Øª */
|
||||
/** ÃÂÃÂÃÂêñÃÂçàðîÃÂñÃÂâÂÂôïÃÂàõÃÂÃÂàïòçñôçê */
|
||||
export interface ReportsViewFilters {
|
||||
/** today | week | month | quarter | year | custom */
|
||||
period: string;
|
||||
@@ -3158,7 +3159,7 @@ export interface ReportsViewFilters {
|
||||
};
|
||||
}
|
||||
|
||||
/** Ù
ترÛÚ©âÙØ§Û Ú¯Ø²Ø§Ø±Ø´âØ³Ø§Ø² ساد٠*/
|
||||
/** ÃÂ
êñÃÂéâÂÂÃÂçàïòçñôâÂÂóçò óçïà*/
|
||||
export type ReportsBuilderMetric =
|
||||
| "won_amount"
|
||||
| "won_count"
|
||||
@@ -3186,18 +3187,18 @@ export const REPORTS_BUILDER_METRIC_LABELS: Record<
|
||||
ReportsBuilderMetric,
|
||||
string
|
||||
> = {
|
||||
won_amount: "Ù
Ø¨ÙØº Ù
عاÙ
ÙØ§Øª Ø¨Ø±ÙØ¯Ù",
|
||||
won_count: "تعداد Ù
عاÙ
ÙØ§Øª Ø¨Ø±ÙØ¯Ù",
|
||||
lost_count: "تعداد Ù
عاÙ
ÙØ§Øª باختÙ",
|
||||
open_count: "تعداد Ù
عاÙ
ÙØ§Øª باز",
|
||||
open_amount: "Ù
Ø¨ÙØº Ù
عاÙ
ÙØ§Øª باز",
|
||||
activities_done: "ÙØ¹Ø§ÙÛØª Ø§ÙØ¬Ø§Ù
âØ´Ø¯Ù",
|
||||
people_created: "Ù
Ø´ØªØ±ÛØ§Ù Ø¬Ø¯ÛØ¯",
|
||||
invoice_amount: "Ù
Ø¨ÙØº ÙØ§Ú©ØªÙر",
|
||||
invoice_count: "تعداد ÙØ§Ú©ØªÙر",
|
||||
won_amount: "ÃÂ
èÃÂú ÃÂ
ùçÃÂ
ÃÂçê èñÃÂïÃÂ",
|
||||
won_count: "êùïçï ÃÂ
ùçÃÂ
ÃÂçê èñÃÂïÃÂ",
|
||||
lost_count: "êùïçï ÃÂ
ùçÃÂ
ÃÂçê èçîêÃÂ",
|
||||
open_count: "êùïçï ÃÂ
ùçÃÂ
ÃÂçê èçò",
|
||||
open_amount: "ÃÂ
èÃÂú ÃÂ
ùçÃÂ
ÃÂçê èçò",
|
||||
activities_done: "ÃÂùçÃÂÃÂê çÃÂìçÃÂ
âÂÂôïÃÂ",
|
||||
people_created: "ÃÂ
ôêñÃÂçàìïÃÂï",
|
||||
invoice_amount: "ÃÂ
èÃÂú ÃÂçéêÃÂñ",
|
||||
invoice_count: "êùïçï ÃÂçéêÃÂñ",
|
||||
};
|
||||
|
||||
/** ابعاد گرÙÙâØ¨ÙØ¯Û Ú¯Ø²Ø§Ø±Ø´âØ³Ø§Ø² */
|
||||
/** çèùçï ïñÃÂÃÂâÂÂèÃÂïàïòçñôâÂÂóçò */
|
||||
export type ReportsBuilderDimension =
|
||||
| "none"
|
||||
| "owner"
|
||||
@@ -3221,13 +3222,13 @@ export const REPORTS_BUILDER_DIMENSION_LABELS: Record<
|
||||
ReportsBuilderDimension,
|
||||
string
|
||||
> = {
|
||||
none: "بدÙ٠گرÙÙâØ¨ÙØ¯Û (جÙ
ع Ú©Ù)",
|
||||
owner: "کاربر / Ù
سئÙÙ",
|
||||
team: "تÛÙ
",
|
||||
source: "Ù
ÙØ¨Ø¹",
|
||||
stage: "Ù
رØÙÙ Ú©Ø§Ø±ÛØ²",
|
||||
month: "Ù
اÙ",
|
||||
status: "ÙØ¶Ø¹Ûت Ù
عاÙ
ÙÙ",
|
||||
none: "èïÃÂàïñÃÂÃÂâÂÂèÃÂïà(ìÃÂ
ù éÃÂ)",
|
||||
owner: "éçñèñ / ÃÂ
óæÃÂÃÂ",
|
||||
team: "êÃÂÃÂ
",
|
||||
source: "ÃÂ
ÃÂèù",
|
||||
stage: "ÃÂ
ñÃÂÃÂàéçñÃÂò",
|
||||
month: "ÃÂ
çÃÂ",
|
||||
status: "ÃÂöùÃÂê ÃÂ
ùçÃÂ
ÃÂÃÂ",
|
||||
};
|
||||
|
||||
export interface ReportsBuilderQuery {
|
||||
@@ -3278,7 +3279,7 @@ export interface CreateSavedViewRequest {
|
||||
|
||||
export type UpdateSavedViewRequest = Partial<CreateSavedViewRequest>;
|
||||
|
||||
/* âââ API عÙ
ÙÙ
Û Ù ÙØ¨âÙÙÚ© âââ */
|
||||
/* âÂÂâÂÂâ API ùÃÂ
ÃÂÃÂ
ààÃÂèâÂÂÃÂÃÂé âÂÂâÂÂâ */
|
||||
|
||||
export const WEBHOOK_EVENTS = [
|
||||
"person.created",
|
||||
@@ -3307,7 +3308,7 @@ export interface CreateOrganizationApiKeyRequest {
|
||||
}
|
||||
|
||||
export interface CreateOrganizationApiKeyResponse extends OrganizationApiKeyDto {
|
||||
/** ÙÙØ· ÛÚ©âØ¨Ø§Ø± ÙÙگاÙ
ساخت Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù
ÛâØ´ÙØ¯ */
|
||||
/** ÃÂÃÂ÷ ÃÂéâÂÂèçñ ÃÂÃÂïçÃÂ
óçîê èñïñïçÃÂïàÃÂ
ÃÂâÂÂôÃÂï */
|
||||
rawKey: string;
|
||||
}
|
||||
|
||||
@@ -3329,7 +3330,7 @@ export interface CreateWebhookEndpointRequest {
|
||||
isActive?: boolean;
|
||||
}
|
||||
|
||||
/** ÙÙØ· ÙÙگاÙ
Ø³Ø§Ø®ØªØ secret Ø¯ÙØ¨Ø§Ø±Ù برÙÙ
Ûâگردد */
|
||||
/** ÃÂÃÂ÷ ÃÂÃÂïçÃÂ
óçîêàsecret ïÃÂèçñàèñÃÂÃÂ
ÃÂâÂÂïñïï */
|
||||
export interface CreateWebhookEndpointResponse extends WebhookEndpointDto {
|
||||
secret: string;
|
||||
}
|
||||
@@ -3347,7 +3348,7 @@ export interface WebhookDeliveryDto {
|
||||
deliveredAt: string | null;
|
||||
}
|
||||
|
||||
/* âââ Ù¾ÛØ§Ù
Ú© گرÙÙÛ âââ */
|
||||
/* âÂÂâÂÂâ þÃÂçÃÂ
é ïñÃÂÃÂàâÂÂâÂÂâ */
|
||||
|
||||
export type SmsCampaignStatus =
|
||||
| "draft"
|
||||
@@ -3375,7 +3376,7 @@ export interface CreateSmsCampaignRequest {
|
||||
body: string;
|
||||
personIds: string[];
|
||||
scheduledAt?: string | null;
|
||||
/** اگر true باشد Ø¨ÙØ§ÙاصÙ٠ص٠Ù
ÛâØ´ÙØ¯ */
|
||||
/** çïñ true èçôï èÃÂçÃÂçõÃÂàõàÃÂ
ÃÂâÂÂôÃÂï */
|
||||
queueNow?: boolean;
|
||||
}
|
||||
|
||||
@@ -3384,7 +3385,7 @@ export interface SmsCampaignListResponse {
|
||||
total: number;
|
||||
}
|
||||
|
||||
/* âââ ØªÛÙ
âÙØ§ Ù Ø³Ø·Ø Ø¯Ø³ØªØ±Ø³Û Ø¨Ù Ù¾Ø±ÙÙØ¯ÙâÙØ§ âââ */
|
||||
/* âÂÂâÂÂâ êÃÂÃÂ
âÂÂÃÂç àó÷àïóêñóàèàþñÃÂÃÂïÃÂâÂÂÃÂç âÂÂâÂÂâ */
|
||||
|
||||
export type TeamMemberRole = "member" | "manager";
|
||||
|
||||
@@ -3421,7 +3422,7 @@ export interface SetTeamMembersRequest {
|
||||
members: Array<{ userId: string; role: TeamMemberRole }>;
|
||||
}
|
||||
|
||||
/* âââ ÙÙکاÙ
رس âââ */
|
||||
/* âÂÂâÂÂâ ÃÂÃÂéçÃÂ
ñó âÂÂâÂÂâ */
|
||||
|
||||
export interface WooCommerceConnectionDto {
|
||||
id: string;
|
||||
@@ -3477,7 +3478,7 @@ export interface WooCommerceOrderLinkDto {
|
||||
syncedAt: string;
|
||||
}
|
||||
|
||||
/* âââ ØªÙÙ٠سازÙ
اÙÛ / VoIP âââ */
|
||||
/* âÂÂâÂÂâ êÃÂÃÂàóçòÃÂ
çÃÂà/ VoIP âÂÂâÂÂâ */
|
||||
|
||||
export type VoipCallDirection = "inbound" | "outbound";
|
||||
|
||||
@@ -3493,7 +3494,7 @@ export interface VoipConnectionDto {
|
||||
label: string;
|
||||
enabled: boolean;
|
||||
webhookSecretSet: boolean;
|
||||
/** ÙØ§Ùب URL Ø¨Ø±Ø§Û Ø´Ø±ÙØ¹ تÙ
Ø§Ø³Ø {number} جاÛگزÛÙ Ù
ÛâØ´ÙØ¯ */
|
||||
/** ÃÂçÃÂè URL èñçàôñÃÂù êÃÂ
çóà{number} ìçÃÂïòÃÂàÃÂ
ÃÂâÂÂôÃÂï */
|
||||
clickToCallUrl: string | null;
|
||||
lastEventAt: string | null;
|
||||
lastError: string | null;
|
||||
@@ -3550,7 +3551,7 @@ export interface VoipClickToCallRequest {
|
||||
}
|
||||
|
||||
export interface VoipWebhookEvent {
|
||||
/** Ø´ÙØ§Ø³Ù ÛÚ©ØªØ§Û ØªÙ
اس در Ø³Ø§ÙØªØ±Ø§Ù */
|
||||
/** ôÃÂçóàÃÂéêçàêÃÂ
çó ïñ óçÃÂêñçà*/
|
||||
callId: string;
|
||||
direction: VoipCallDirection;
|
||||
status: VoipCallStatus | string;
|
||||
@@ -3559,16 +3560,16 @@ export interface VoipWebhookEvent {
|
||||
startedAt?: string;
|
||||
endedAt?: string;
|
||||
durationSec?: number;
|
||||
/** ÙÛÙÚ© ÙØ§Û٠ضبط (Ø¨Ø±Ø§Û Ø®ÙØ§ØµÙ Ø®ÙØ¯Ú©Ø§Ø±) */
|
||||
/** ÃÂÃÂÃÂé ÃÂçÃÂàöè÷ (èñçàîÃÂçõàîÃÂïéçñ) */
|
||||
recordingUrl?: string;
|
||||
/** Ù
ت٠آÙ
ادÙ٠تÙ
Ø§Ø³Ø Ø§Ú¯Ø± باشد STT رد Ù
ÛâØ´ÙØ¯ */
|
||||
/** ÃÂ
êàâÃÂ
çïÃÂàêÃÂ
çóàçïñ èçôï STT ñï ÃÂ
ÃÂâÂÂôÃÂï */
|
||||
transcript?: string;
|
||||
/** Ø¨Ø±Ø§Û Ø³Ø§Ø²Ú¯Ø§Ø±Û Ø¨Ø§ ÙÛÙØ¯ÙØ§Û Ø±Ø§ÛØ¬ دÛگر */
|
||||
/** èñçàóçòïçñàèç ÃÂÃÂÃÂïÃÂçàñçÃÂì ïÃÂïñ */
|
||||
caller?: string;
|
||||
callee?: string;
|
||||
}
|
||||
|
||||
/* âââ Ø±Ø²Ø±Ù Ù ÙÙØ¨ØªâدÙÛ âââ */
|
||||
/* âÂÂâÂÂâ ñòñààÃÂÃÂèêâÂÂïÃÂàâÂÂâÂÂâ */
|
||||
|
||||
export type ReservationStatus =
|
||||
| "pending"
|
||||
@@ -3584,10 +3585,10 @@ export const RESERVATION_STATUSES: ReservationStatus[] = [
|
||||
];
|
||||
|
||||
export const RESERVATION_STATUS_LABELS: Record<ReservationStatus, string> = {
|
||||
pending: "در Ø§ÙØªØ¸Ø§Ø±",
|
||||
confirmed: "تأÛÛØ¯ شدÙ",
|
||||
canceled: "ÙØºÙ شدÙ",
|
||||
done: "Ø§ÙØ¬Ø§Ù
شدÙ",
|
||||
pending: "ïñ çÃÂêøçñ",
|
||||
confirmed: "êãÃÂÃÂï ôïÃÂ",
|
||||
canceled: "ÃÂúàôïÃÂ",
|
||||
done: "çÃÂìçÃÂ
ôïÃÂ",
|
||||
};
|
||||
|
||||
export interface ReservationServiceDto {
|
||||
@@ -3595,7 +3596,7 @@ export interface ReservationServiceDto {
|
||||
name: string;
|
||||
description: string;
|
||||
durationMinutes: number;
|
||||
/** Ø±ÙØ²ÙØ§Û ÙÙØªÙ Û°=ÛÚ©Ø´ÙØ¨Ù ⦠۶=Ø´ÙØ¨Ù (JS getDay) */
|
||||
/** ñÃÂòÃÂçàÃÂÃÂêàð=ÃÂéôÃÂèà⦠ö=ôÃÂèà(JS getDay) */
|
||||
workDays: number[];
|
||||
dayStartHour: number;
|
||||
dayEndHour: number;
|
||||
@@ -3663,7 +3664,7 @@ export interface ReservationListResponse {
|
||||
|
||||
|
||||
|
||||
/* âââ Ù
Ø¯ÛØ±Ûت ÙÛØ¯Ùا âââ */
|
||||
/* âÂÂâÂÂâ ÃÂ
ïÃÂñÃÂê ÃÂÃÂïÃÂç âÂÂâÂÂâ */
|
||||
|
||||
export type LeadAssignRule = "round_robin" | "equal_split";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user