Unified search algorithm across all lists; per-section record visibility (contacts, deals, activities, leads, finance, tickets, notes, projects)

This commit is contained in:
2026-10-06 15:04:46 +03:30
parent 43717392b2
commit e08f1452ef
38 changed files with 699 additions and 420 deletions
+41 -1
View File
@@ -317,6 +317,8 @@ export interface OrgUserDto {
commissionPercent?: number;
/** own = فقط خود | team = هم‌تیمی‌ها | org = کل سازمان */
dataVisibility?: DataVisibility;
/** سطح دسترسی تفکیکی هر بخش (فقط بخش‌هایی که با پیش‌فرض فرق دارند) */
dataVisibilityScopes?: DataVisibilityScopes;
createdAt: string;
}
@@ -330,8 +332,46 @@ export const DATA_VISIBILITY_LABELS: Record<DataVisibility, string> = {
org: "کل سازمان",
};
/** بخش‌هایی که سطح دسترسی به پرونده‌ها برایشان جداگانه تعیین می‌شود */
export type DataScope =
| "contacts"
| "deals"
| "activities"
| "leads"
| "finance"
| "tickets"
| "notes"
| "projects";
export const DATA_SCOPES: DataScope[] = [
"contacts",
"deals",
"activities",
"leads",
"finance",
"tickets",
"notes",
"projects",
];
export const DATA_SCOPE_LABELS: Record<DataScope, string> = {
contacts: "مشتریان (اشخاص و شرکت‌ها)",
deals: "معاملات و اهداف فروش",
activities: "فعالیت‌ها و کارها",
leads: "سرنخ‌ها",
finance: "فاکتور، پیش‌فاکتور و چک",
tickets: "تیکت‌ها",
notes: "یادداشت‌ها",
projects: "پروژه‌ها",
};
export type DataVisibilityScopes = Partial<Record<DataScope, DataVisibility>>;
export interface UpdateUserVisibilityRequest {
dataVisibility: DataVisibility;
/** سطح پیش‌فرض برای بخش‌هایی که جداگانه تنظیم نشده‌اند */
dataVisibility?: DataVisibility;
/** سطح هر بخش؛ مقدار null یعنی «مثل پیش‌فرض» */
scopes?: Partial<Record<DataScope, DataVisibility | null>>;
}
export type RolePermissionKey =