diff --git a/src/app/dashboard/profile-sections/[id]/page.tsx b/src/app/dashboard/profile-sections/[id]/page.tsx index 2355edf..9a186ce 100644 --- a/src/app/dashboard/profile-sections/[id]/page.tsx +++ b/src/app/dashboard/profile-sections/[id]/page.tsx @@ -55,6 +55,7 @@ export default function SectionDetailPage() { sortOrder: 0, isActive: true, isRequired: false, + isSearchableOnly: false, options: [], rangeConfig: undefined, }); @@ -110,6 +111,7 @@ export default function SectionDetailPage() { sortOrder: fields.length, isActive: true, isRequired: false, + isSearchableOnly: false, options: [], rangeConfig: undefined, }); @@ -130,6 +132,7 @@ export default function SectionDetailPage() { sortOrder: field.sortOrder, isActive: field.isActive, isRequired: field.isRequired, + isSearchableOnly: field.isSearchableOnly, options: field.options || [], rangeConfig: field.rangeConfig || undefined, }); @@ -322,6 +325,11 @@ export default function SectionDetailPage() {
{section.icon && {section.icon}}

{section.name}

+ {section.isSystem && ( + + System + + )} {section.isGlobal && ( Global @@ -382,11 +390,16 @@ export default function SectionDetailPage() {
-
- #{index + 1} +
+ #{index + 1} {field.name} {field.isRequired && ( - *required + *required + )} + {field.isSearchableOnly && ( + + Search Only + )}
@@ -647,6 +660,28 @@ export default function SectionDetailPage() {
+ {/* Search Only Toggle */} +
+
+
+ +

+ This field will be shown in the agent edit form and used for search filtering, + but will NOT be visible on the public agent profile page. +

+
+ setFieldForm({ ...fieldForm, isSearchableOnly: e.target.checked })} + className="mt-1 rounded border-gray-300 text-amber-600 focus:ring-amber-500" + /> +
+
+ {/* Options Editor for SELECT, RADIO, MULTI_SELECT, CHECKBOX_GROUP */} {REQUIRES_OPTIONS.includes(fieldForm.fieldType) && (
diff --git a/src/app/dashboard/profile-sections/page.tsx b/src/app/dashboard/profile-sections/page.tsx index 8d4b342..0848906 100644 --- a/src/app/dashboard/profile-sections/page.tsx +++ b/src/app/dashboard/profile-sections/page.tsx @@ -284,15 +284,22 @@ export default function ProfileSectionsPage() {
- - {section.isGlobal ? 'Global' : 'Specific'} - +
+ {section.isSystem && ( + + System + + )} + + {section.isGlobal ? 'Global' : 'Specific'} + +
- + {section.isSystem ? ( + + Delete + + ) : ( + + )} ))} diff --git a/src/services/profile-fields.service.ts b/src/services/profile-fields.service.ts index fb1247d..b2f8d9c 100644 --- a/src/services/profile-fields.service.ts +++ b/src/services/profile-fields.service.ts @@ -67,6 +67,7 @@ export interface ProfileField { sortOrder: number; isActive: boolean; isRequired: boolean; + isSearchableOnly: boolean; validation: FieldValidation | null; options: FieldOption[] | null; rangeConfig: RangeConfig | null; @@ -90,6 +91,7 @@ export interface CreateFieldDto { sortOrder?: number; isActive?: boolean; isRequired?: boolean; + isSearchableOnly?: boolean; validation?: FieldValidation; options?: FieldOption[]; rangeConfig?: RangeConfig; @@ -105,6 +107,7 @@ export interface UpdateFieldDto { sortOrder?: number; isActive?: boolean; isRequired?: boolean; + isSearchableOnly?: boolean; validation?: FieldValidation; options?: FieldOption[]; rangeConfig?: RangeConfig; diff --git a/src/services/profile-sections.service.ts b/src/services/profile-sections.service.ts index 5e1170a..f19f093 100644 --- a/src/services/profile-sections.service.ts +++ b/src/services/profile-sections.service.ts @@ -11,6 +11,7 @@ export interface ProfileSection { sortOrder: number; isActive: boolean; isGlobal: boolean; + isSystem: boolean; createdAt: string; updatedAt: string; fields?: ProfileField[];