> ## Documentation Index
> Fetch the complete documentation index at: https://mahalldocs.eucodes.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Member profile

> Current screen specification: Member profile. English and Malayalam guidance for the development team.

<Note>Source snapshot: 13 October 2026. These pages describe the current implementation, including unfinished controls. See [coverage and review notes](/reference/coverage).</Note>

<Tabs>
  <Tab title="English">
    ## Member profile

    Host: `admin.<ROOT_DOMAIN>` · Route: `/[tenant]/members/[memberId]`

    ### Purpose and access

    Inspect one member and open the same member-edit dialog used by the directory.

    You need an account session and a resolved membership context in the selected Mahallu (including the API’s current platform elevation path). The API independently checks the requested operation’s permissions and feature availability.

    ### Screen layout

    The record view groups identity and contact details, household links, education/work, health/support, and residency information. The identification number has a reveal control. A missing household offers Link a family.

    ### Fields and displayed information

    Displayed table columns: **Age**, **Phone**, **Email**, **Household**.

    #### Fields and filters: Member form dialog

    | Field / control | Reference | Input | Required marker | Choices / hints / initial values |
    | - | - | - | - | - |
    | Full Legal Name | `member-name` | text | Yes | Enter full name |
    | Linked Family / Household | `member-family` | select | Not marked | No family assigned |
    | Relation to Head of Family | `member-relation` | select | Not marked | Select relation |
    | Date of Birth | `member-dob` | date | Not marked | — |
    | Gender | `member-gender` | select | Not marked | Select gender, Male, Female, Other |
    | Blood Group | `member-blood-group` | select | Not marked | Select blood group |
    | Marital Status | `member-marital-status` | select | Not marked | Select status, Single, Married, Widowed, Divorced |
    | Primary Phone Number | `member-phone` | text | Not marked | e.g. +91 98765 43210 |
    | Email Address | `member-email` | email | Not marked | e.g. [name@example.com](mailto:name@example.com) |
    | National ID / Aadhaar | `member-id-number` | text | Not marked | e.g. 12-digit Aadhaar number |
    | Current Course / Class / Standard | `member-student-course` | text | Not marked | e.g. Plus Two Science, Class 10, B.Tech CS |
    | Current Institution / School / College | `member-student-inst` | text | Not marked | e.g. Farook College, Govt HSS |
    | Employment Status | `member-emp-status` | select | Not marked | Select Employment Status |
    | Job Title / Designation | `member-job-title` | text | Not marked | e.g. Accountant, Electrician, Driver, Merchant |
    | Employer / Company / Business Name | `member-employer` | text | Not marked | e.g. Lulu Hypermarket, Self - Own Shop, Freelance |
    | Is job seeker | `isJobSeeker` | checkbox | Not marked | — |
    | Highest Education Level | `member-edu-level` | select | Not marked | Select Highest Education Level |
    | Primary Qualification / Major | `member-edu-details-primary` | text | Not marked | e.g. B.Com, Plus Two Science, Alimiyya |
    | Level | `new-edu-level` | select | Not marked | Initial: SECONDARY\_SSLC |
    | Degree / Course | `new-edu-degree` | text | Not marked | e.g. SSLC, Plus Two, B.Com |
    | Institution / Board | `new-edu-inst` | text | Not marked | e.g. Govt HSS, Calicut Univ |
    | Year | `new-edu-year` | text | Not marked | e.g. 2021 |
    | New skill input | `newSkillInput` | text | Not marked | e.g. Electrician, Driving, Plumbing, Coding, Graphic Design, Tuition/Teaching, Accounting |
    | Has disability | `hasDisability` | checkbox | Not marked | — |
    | Disability Category | `disabilityType` | select | Not marked | Select Category |
    | Disability Percentage (%) | `disabilityPercentage` | number | Not marked | Percentage %; min 1; max 100 |
    | Disability certificate | `disabilityCertificate` | checkbox | Not marked | — |
    | Disability certificate no | `disabilityCertificateNo` | text | Not marked | Certificate / UDID Number |
    | Has chronic illness | `hasChronicIllness` | checkbox | Not marked | — |
    | Specific Diagnosis / Details | `chronicDetails` | text | Not marked | Condition notes or specific diagnosis |
    | Treatment required | `treatmentRequired` | checkbox | Not marked | — |
    | Regular medication required | `regularMedicationRequired` | checkbox | Not marked | — |
    | Requires assistance | `requiresAssistance` | checkbox | Not marked | — |
    | Primary Caregiver Name | `primaryCaregiverName` | text | Not marked | Name of person assisting |
    | Caregiver Relationship | `caregiverRelationship` | text | Not marked | e.g. Spouse, Son, Daughter, Caretaker |
    | Emergency Contact Person | `emergencyContactName` | text | Not marked | Emergency contact name |
    | Emergency Phone Number | `emergencyContactPhone` | text | Not marked | e.g. +91 98765 43210 |
    | Requires mental health support | `requiresMentalHealthSupport` | checkbox | Not marked | — |
    | Support Type Required | `mentalHealthSupportType` | select | Not marked | Select Support Type, Medical / Psychiatric Treatment, Professional Counselling, Family Mediation & Support, Mahallu Community Care, Other |
    | Requires community support | `requiresCommunitySupport` | checkbox | Not marked | — |
    | Support Category | `supportCategory` | select | Not marked | Select Welfare Category |
    | Support Status | `supportStatus` | select | Not marked | Active (Needs Continuous Care), Monitoring (Periodic Follow-up), Resolved / Completed; Initial: ACTIVE |
    | Welfare Committee Notes | `supportNotes` | textarea | Not marked | Confidential notes for the Mahallu welfare committee / relief desk... |
    | Use family address | `useFamilyAddress` | checkbox | Not marked | — |
    | House / Building Name | `m-house-name` | text | Not marked | House Name / Flat |
    | Place / Locality | `m-place` | text | Not marked | Place / Locality |
    | Post Office | `m-post` | text | Not marked | Post Office |
    | State | `m-state` | searchable select | Not marked | Select State; Initial: Kerala |
    | District | `m-district` | searchable select | Not marked | Select District |
    | PIN Code | `m-pin` | text | Not marked | 6-digit PIN |
    | Local Body Type | `m-local-body-type` | select | Not marked | Grama Panchayath, Municipality, Corporation; Initial: Grama Panchayath |
    | Local Body Name | `m-local-body-name` | text | Not marked | Name of Panchayath / Municipality |
    | Residency Status | `member-movement-status` | select | Not marked | — |
    | Status Effective Date | `member-movement-date` | date | Not marked | — |
    | Is expatriate | `isExpatriate` | checkbox | Not marked | — |
    | Expatriate country | `expatriateCountry` | text | Not marked | Country of residence (e.g. UAE, Saudi Arabia) |
    | Expatriate occupation | `expatriateOccupation` | text | Not marked | Occupation abroad |
    | Is yatheem | `isYatheem` | checkbox | Not marked | — |
    | Guardian name | `guardianName` | text | Not marked | Guardian Name |
    | Guardian phone | `guardianPhone` | text | Not marked | Guardian Phone |

    ### Actions

    | Control | Result | Component |
    | - | - | - |
    | Edit member | Opens the `form` view. | `member-detail-view.tsx` |
    | h-3.5 w-3.5 | Updates local UI state; persistence is described separately below. | `member-detail-view.tsx` |
    | Link a family | Opens the `form` view. | `member-detail-view.tsx` |
    | Call | No direct click handler; may be a menu trigger or linked control. See the sequence below. | `member-detail-view.tsx` |
    | WhatsApp | No direct click handler; may be a menu trigger or linked control. See the sequence below. | `member-detail-view.tsx` |
    | 1. Identity & Demographics | Changes the selected view, filter, or page in local state. | `member-form-dialog.tsx` |
    | 2. Education & Work | Changes the selected view, filter, or page in local state. | `member-form-dialog.tsx` |
    | 3. Health & Support | Changes the selected view, filter, or page in local state. | `member-form-dialog.tsx` |
    | 4. Address & Registers | Changes the selected view, filter, or page in local state. | `member-form-dialog.tsx` |
    | Student | Updates local UI state; persistence is described separately below. | `member-form-dialog.tsx` |
    | Worker / Adult | Updates local UI state; persistence is described separately below. | `member-form-dialog.tsx` |
    | Add | Invokes the associated handler; see the sequence below. | `member-form-dialog.tsx` |
    | × | Invokes the associated handler; see the sequence below. | `member-form-dialog.tsx` |
    | Add | Invokes the associated handler; see the sequence below. | `member-form-dialog.tsx` |
    | + | Updates local UI state; persistence is described separately below. | `member-form-dialog.tsx` |
    | × | Invokes the associated handler; see the sequence below. | `member-form-dialog.tsx` |
    | No Known Condition Healthy / No chronic illness | Updates local UI state; persistence is described separately below. | `member-form-dialog.tsx` |
    | Has Condition Chronic illness, disability, or care | Updates local UI state; persistence is described separately below. | `member-form-dialog.tsx` |
    | Not Disclosed Prefer not to disclose | Updates local UI state; persistence is described separately below. | `member-form-dialog.tsx` |
    | Delete | Opens the `delete confirm` view. | `member-form-dialog.tsx` |
    | Cancel | Invokes the associated handler; see the sequence below. | `member-form-dialog.tsx` |
    | Back | Changes the selected view, filter, or page in local state. | `member-form-dialog.tsx` |
    | Next | Changes the selected view, filter, or page in local state. | `member-form-dialog.tsx` |
    | Save Changes / Add Member | Updates local UI state; persistence is described separately below. | `member-form-dialog.tsx` |
    | Delete Member | Submits the associated API change; follow the sequence and failure rules below. | `member-form-dialog.tsx` |
    | Refresh contributions | Invokes the associated handler; see the sequence below. | `contribution-history.tsx` |
    | Try again | Invokes the associated handler; see the sequence below. | `contribution-history.tsx` |

    #### Linked navigation

    | Link | Target in source |
    | - | - |
    | View family | `/${slug}/families/${familyId}` |
    | Call | `telHref(member.phone)` |
    | WhatsApp | `whatsappHref(member.phone)` |

    ### Interaction sequence

    Open a member row → inspect the profile → use Edit member or Link a family → update the dialog → save → refresh the profile. Use household links to navigate to related records.

    ### States and rules

    The route resolves the member by ID within the tenant and uses notFound when the record cannot be loaded. No health details recorded is a dedicated empty panel. Revealing the ID changes visibility only.

    Explicit validation messages in the rendered forms:

    * Member full name is required.

    The rendered action controls bind loading indicators to pending state. Failed API saves keep their documented error/notification path; a loading indicator alone does not establish persistence.

    ### Implementation references

    Paths below are relative to the application repository. This is source-reviewed behavior, not a recorded browser test.

    * `apps/web/src/app/sites/admin/[tenant]/members/[memberId]/page.tsx`
    * `apps/web/src/features/tenants/member-detail-view.tsx`
    * `apps/web/src/features/tenants/member-form-dialog.tsx`
    * `apps/web/src/features/tenants/contribution-history.tsx`
    * `apps/web/src/features/tenants/record-layout.tsx`

    Data and access helpers: `apps/web/src/lib/session.ts`, `apps/web/src/lib/server-api.ts`, `apps/web/src/lib/tenants.ts`, `apps/web/src/lib/members.ts`, `apps/web/src/lib/business-resources.ts`, `apps/web/src/lib/api-client.ts`

    Relevant controller permission keys: `members.view`, `members.create`, `members.update`, `members.delete`. Keys are operation-specific; the current guard grants OWNER/ADMIN and its platform-elevation context an operational bypass. A visible control still does not establish authorization.

    ### API behavior references

    * `apps/api/src/members/education-employment.controller.ts`
    * `apps/api/src/members/health-support.controller.ts`
    * `apps/api/src/members/members.controller.ts`
  </Tab>

  <Tab title="മലയാളം">
    ## Member profile

    Host: `admin.<ROOT_DOMAIN>` · Route: `/[tenant]/members/[memberId]`

    ### ഉദ്ദേശ്യവും പ്രവേശനവും

    ഒരംഗത്തിന്റെ വിവരങ്ങൾ പരിശോധിച്ച് ഡയറക്ടറിയിലുള്ള അതേ തിരുത്തൽ ഡയലോഗ് തുറക്കുക.

    Account sessionഉം തിരഞ്ഞെടുത്ത മഹല്ലിൽ resolved membership contextഉം വേണം; APIയിലെ നിലവിലെ platform elevation pathഉം ഇതിൽപ്പെടും. ഓരോ പ്രവർത്തനത്തിന്റെയും permissions/features API പ്രത്യേകം പരിശോധിക്കുന്നു.

    ### സ്ക്രീൻ ക്രമം

    തിരിച്ചറിയൽ, ബന്ധപ്പെടൽ, കുടുംബബന്ധം, വിദ്യാഭ്യാസം/ജോലി, ആരോഗ്യം/സഹായം, താമസവിവരങ്ങൾ എന്നിവ വിഭാഗങ്ങളായി കാണിക്കുന്നു. തിരിച്ചറിയൽ നമ്പർ വെളിപ്പെടുത്താൻ നിയന്ത്രണമുണ്ട്. കുടുംബമില്ലെങ്കിൽ Link a family കാണിക്കും.

    ### ഫീൽഡുകളും പ്രദർശിപ്പിക്കുന്ന വിവരങ്ങളും

    പ്രദർശിപ്പിക്കുന്ന table columns: **Age**, **Phone**, **Email**, **Household**.

    #### ഫീൽഡുകളും ഫിൽട്ടറുകളും: Member form dialog

    | ഫീൽഡ് / നിയന്ത്രണം | റഫറൻസ് | ഇൻപുട്ട് | നിർബന്ധ ചിഹ്നം | തിരഞ്ഞെടുപ്പുകൾ / സൂചനകൾ / ആരംഭ മൂല്യങ്ങൾ |
    | - | - | - | - | - |
    | Full Legal Name | `member-name` | text | ഉണ്ട് | Enter full name |
    | Linked Family / Household | `member-family` | select | ചിഹ്നമില്ല | No family assigned |
    | Relation to Head of Family | `member-relation` | select | ചിഹ്നമില്ല | Select relation |
    | Date of Birth | `member-dob` | date | ചിഹ്നമില്ല | — |
    | Gender | `member-gender` | select | ചിഹ്നമില്ല | Select gender, Male, Female, Other |
    | Blood Group | `member-blood-group` | select | ചിഹ്നമില്ല | Select blood group |
    | Marital Status | `member-marital-status` | select | ചിഹ്നമില്ല | Select status, Single, Married, Widowed, Divorced |
    | Primary Phone Number | `member-phone` | text | ചിഹ്നമില്ല | e.g. +91 98765 43210 |
    | Email Address | `member-email` | email | ചിഹ്നമില്ല | e.g. [name@example.com](mailto:name@example.com) |
    | National ID / Aadhaar | `member-id-number` | text | ചിഹ്നമില്ല | e.g. 12-digit Aadhaar number |
    | Current Course / Class / Standard | `member-student-course` | text | ചിഹ്നമില്ല | e.g. Plus Two Science, Class 10, B.Tech CS |
    | Current Institution / School / College | `member-student-inst` | text | ചിഹ്നമില്ല | e.g. Farook College, Govt HSS |
    | Employment Status | `member-emp-status` | select | ചിഹ്നമില്ല | Select Employment Status |
    | Job Title / Designation | `member-job-title` | text | ചിഹ്നമില്ല | e.g. Accountant, Electrician, Driver, Merchant |
    | Employer / Company / Business Name | `member-employer` | text | ചിഹ്നമില്ല | e.g. Lulu Hypermarket, Self - Own Shop, Freelance |
    | Is job seeker | `isJobSeeker` | checkbox | ചിഹ്നമില്ല | — |
    | Highest Education Level | `member-edu-level` | select | ചിഹ്നമില്ല | Select Highest Education Level |
    | Primary Qualification / Major | `member-edu-details-primary` | text | ചിഹ്നമില്ല | e.g. B.Com, Plus Two Science, Alimiyya |
    | Level | `new-edu-level` | select | ചിഹ്നമില്ല | ആരംഭം: SECONDARY\_SSLC |
    | Degree / Course | `new-edu-degree` | text | ചിഹ്നമില്ല | e.g. SSLC, Plus Two, B.Com |
    | Institution / Board | `new-edu-inst` | text | ചിഹ്നമില്ല | e.g. Govt HSS, Calicut Univ |
    | Year | `new-edu-year` | text | ചിഹ്നമില്ല | e.g. 2021 |
    | New skill input | `newSkillInput` | text | ചിഹ്നമില്ല | e.g. Electrician, Driving, Plumbing, Coding, Graphic Design, Tuition/Teaching, Accounting |
    | Has disability | `hasDisability` | checkbox | ചിഹ്നമില്ല | — |
    | Disability Category | `disabilityType` | select | ചിഹ്നമില്ല | Select Category |
    | Disability Percentage (%) | `disabilityPercentage` | number | ചിഹ്നമില്ല | Percentage %; min 1; max 100 |
    | Disability certificate | `disabilityCertificate` | checkbox | ചിഹ്നമില്ല | — |
    | Disability certificate no | `disabilityCertificateNo` | text | ചിഹ്നമില്ല | Certificate / UDID Number |
    | Has chronic illness | `hasChronicIllness` | checkbox | ചിഹ്നമില്ല | — |
    | Specific Diagnosis / Details | `chronicDetails` | text | ചിഹ്നമില്ല | Condition notes or specific diagnosis |
    | Treatment required | `treatmentRequired` | checkbox | ചിഹ്നമില്ല | — |
    | Regular medication required | `regularMedicationRequired` | checkbox | ചിഹ്നമില്ല | — |
    | Requires assistance | `requiresAssistance` | checkbox | ചിഹ്നമില്ല | — |
    | Primary Caregiver Name | `primaryCaregiverName` | text | ചിഹ്നമില്ല | Name of person assisting |
    | Caregiver Relationship | `caregiverRelationship` | text | ചിഹ്നമില്ല | e.g. Spouse, Son, Daughter, Caretaker |
    | Emergency Contact Person | `emergencyContactName` | text | ചിഹ്നമില്ല | Emergency contact name |
    | Emergency Phone Number | `emergencyContactPhone` | text | ചിഹ്നമില്ല | e.g. +91 98765 43210 |
    | Requires mental health support | `requiresMentalHealthSupport` | checkbox | ചിഹ്നമില്ല | — |
    | Support Type Required | `mentalHealthSupportType` | select | ചിഹ്നമില്ല | Select Support Type, Medical / Psychiatric Treatment, Professional Counselling, Family Mediation & Support, Mahallu Community Care, Other |
    | Requires community support | `requiresCommunitySupport` | checkbox | ചിഹ്നമില്ല | — |
    | Support Category | `supportCategory` | select | ചിഹ്നമില്ല | Select Welfare Category |
    | Support Status | `supportStatus` | select | ചിഹ്നമില്ല | Active (Needs Continuous Care), Monitoring (Periodic Follow-up), Resolved / Completed; ആരംഭം: ACTIVE |
    | Welfare Committee Notes | `supportNotes` | textarea | ചിഹ്നമില്ല | Confidential notes for the Mahallu welfare committee / relief desk... |
    | Use family address | `useFamilyAddress` | checkbox | ചിഹ്നമില്ല | — |
    | House / Building Name | `m-house-name` | text | ചിഹ്നമില്ല | House Name / Flat |
    | Place / Locality | `m-place` | text | ചിഹ്നമില്ല | Place / Locality |
    | Post Office | `m-post` | text | ചിഹ്നമില്ല | Post Office |
    | State | `m-state` | searchable select | ചിഹ്നമില്ല | Select State; ആരംഭം: Kerala |
    | District | `m-district` | searchable select | ചിഹ്നമില്ല | Select District |
    | PIN Code | `m-pin` | text | ചിഹ്നമില്ല | 6-digit PIN |
    | Local Body Type | `m-local-body-type` | select | ചിഹ്നമില്ല | Grama Panchayath, Municipality, Corporation; ആരംഭം: Grama Panchayath |
    | Local Body Name | `m-local-body-name` | text | ചിഹ്നമില്ല | Name of Panchayath / Municipality |
    | Residency Status | `member-movement-status` | select | ചിഹ്നമില്ല | — |
    | Status Effective Date | `member-movement-date` | date | ചിഹ്നമില്ല | — |
    | Is expatriate | `isExpatriate` | checkbox | ചിഹ്നമില്ല | — |
    | Expatriate country | `expatriateCountry` | text | ചിഹ്നമില്ല | Country of residence (e.g. UAE, Saudi Arabia) |
    | Expatriate occupation | `expatriateOccupation` | text | ചിഹ്നമില്ല | Occupation abroad |
    | Is yatheem | `isYatheem` | checkbox | ചിഹ്നമില്ല | — |
    | Guardian name | `guardianName` | text | ചിഹ്നമില്ല | Guardian Name |
    | Guardian phone | `guardianPhone` | text | ചിഹ്നമില്ല | Guardian Phone |

    ### പ്രവർത്തനങ്ങൾ

    | നിയന്ത്രണം | ഫലം | Component |
    | - | - | - |
    | Edit member | `form` കാഴ്ച തുറക്കും. | `member-detail-view.tsx` |
    | h-3.5 w-3.5 | Local UI state പുതുക്കും; സംരക്ഷിക്കൽ താഴെ പ്രത്യേകം വിവരിക്കുന്നു. | `member-detail-view.tsx` |
    | Link a family | `form` കാഴ്ച തുറക്കും. | `member-detail-view.tsx` |
    | Call | നേരിട്ടുള്ള click handler ഇല്ല; menu trigger/linked control ആയിരിക്കാം. താഴെ പ്രവർത്തനക്രമം കാണുക. | `member-detail-view.tsx` |
    | WhatsApp | നേരിട്ടുള്ള click handler ഇല്ല; menu trigger/linked control ആയിരിക്കാം. താഴെ പ്രവർത്തനക്രമം കാണുക. | `member-detail-view.tsx` |
    | 1. Identity & Demographics | പ്രാദേശിക stateൽ കാഴ്ച, filter അല്ലെങ്കിൽ page മാറ്റും. | `member-form-dialog.tsx` |
    | 2. Education & Work | പ്രാദേശിക stateൽ കാഴ്ച, filter അല്ലെങ്കിൽ page മാറ്റും. | `member-form-dialog.tsx` |
    | 3. Health & Support | പ്രാദേശിക stateൽ കാഴ്ച, filter അല്ലെങ്കിൽ page മാറ്റും. | `member-form-dialog.tsx` |
    | 4. Address & Registers | പ്രാദേശിക stateൽ കാഴ്ച, filter അല്ലെങ്കിൽ page മാറ്റും. | `member-form-dialog.tsx` |
    | Student | Local UI state പുതുക്കും; സംരക്ഷിക്കൽ താഴെ പ്രത്യേകം വിവരിക്കുന്നു. | `member-form-dialog.tsx` |
    | Worker / Adult | Local UI state പുതുക്കും; സംരക്ഷിക്കൽ താഴെ പ്രത്യേകം വിവരിക്കുന്നു. | `member-form-dialog.tsx` |
    | Add | ബന്ധപ്പെട്ട handler പ്രവർത്തിപ്പിക്കും; താഴെ പ്രവർത്തനക്രമം കാണുക. | `member-form-dialog.tsx` |
    | × | ബന്ധപ്പെട്ട handler പ്രവർത്തിപ്പിക്കും; താഴെ പ്രവർത്തനക്രമം കാണുക. | `member-form-dialog.tsx` |
    | Add | ബന്ധപ്പെട്ട handler പ്രവർത്തിപ്പിക്കും; താഴെ പ്രവർത്തനക്രമം കാണുക. | `member-form-dialog.tsx` |
    | + | Local UI state പുതുക്കും; സംരക്ഷിക്കൽ താഴെ പ്രത്യേകം വിവരിക്കുന്നു. | `member-form-dialog.tsx` |
    | × | ബന്ധപ്പെട്ട handler പ്രവർത്തിപ്പിക്കും; താഴെ പ്രവർത്തനക്രമം കാണുക. | `member-form-dialog.tsx` |
    | No Known Condition Healthy / No chronic illness | Local UI state പുതുക്കും; സംരക്ഷിക്കൽ താഴെ പ്രത്യേകം വിവരിക്കുന്നു. | `member-form-dialog.tsx` |
    | Has Condition Chronic illness, disability, or care | Local UI state പുതുക്കും; സംരക്ഷിക്കൽ താഴെ പ്രത്യേകം വിവരിക്കുന്നു. | `member-form-dialog.tsx` |
    | Not Disclosed Prefer not to disclose | Local UI state പുതുക്കും; സംരക്ഷിക്കൽ താഴെ പ്രത്യേകം വിവരിക്കുന്നു. | `member-form-dialog.tsx` |
    | Delete | `delete confirm` കാഴ്ച തുറക്കും. | `member-form-dialog.tsx` |
    | Cancel | ബന്ധപ്പെട്ട handler പ്രവർത്തിപ്പിക്കും; താഴെ പ്രവർത്തനക്രമം കാണുക. | `member-form-dialog.tsx` |
    | Back | പ്രാദേശിക stateൽ കാഴ്ച, filter അല്ലെങ്കിൽ page മാറ്റും. | `member-form-dialog.tsx` |
    | Next | പ്രാദേശിക stateൽ കാഴ്ച, filter അല്ലെങ്കിൽ page മാറ്റും. | `member-form-dialog.tsx` |
    | Save Changes / Add Member | Local UI state പുതുക്കും; സംരക്ഷിക്കൽ താഴെ പ്രത്യേകം വിവരിക്കുന്നു. | `member-form-dialog.tsx` |
    | Delete Member | ബന്ധപ്പെട്ട API മാറ്റം സമർപ്പിക്കും; താഴെയുള്ള പ്രവർത്തനക്രമവും പിശക് നിയമങ്ങളും കാണുക. | `member-form-dialog.tsx` |
    | Refresh contributions | ബന്ധപ്പെട്ട handler പ്രവർത്തിപ്പിക്കും; താഴെ പ്രവർത്തനക്രമം കാണുക. | `contribution-history.tsx` |
    | Try again | ബന്ധപ്പെട്ട handler പ്രവർത്തിപ്പിക്കും; താഴെ പ്രവർത്തനക്രമം കാണുക. | `contribution-history.tsx` |

    #### ലിങ്ക് നാവിഗേഷൻ

    | ലിങ്ക് | Source ലക്ഷ്യം |
    | - | - |
    | View family | `/${slug}/families/${familyId}` |
    | Call | `telHref(member.phone)` |
    | WhatsApp | `whatsappHref(member.phone)` |

    ### പ്രവർത്തനക്രമം

    അംഗത്തിന്റെ വരി തുറക്കുക → വിവരങ്ങൾ പരിശോധിക്കുക → Edit member അല്ലെങ്കിൽ Link a family തിരഞ്ഞെടുക്കുക → ഡയലോഗിൽ മാറ്റം നൽകുക → സംരക്ഷിക്കുക → പ്രൊഫൈൽ പുതുക്കും. കുടുംബ ലിങ്കിലൂടെ ബന്ധപ്പെട്ട രേഖ തുറക്കാം.

    ### നിലകളും നിയമങ്ങളും

    അംഗത്തെ മഹല്ലിനുള്ളിലെ ID ഉപയോഗിച്ചാണ് വായിക്കുന്നത്; ലഭിക്കാത്തപ്പോൾ notFound ഉപയോഗിക്കുന്നു. ആരോഗ്യവിവരങ്ങൾ ഇല്ലെങ്കിൽ പ്രത്യേക ശൂന്യ സന്ദേശം കാണിക്കുന്നു. ID വെളിപ്പെടുത്തുന്നത് പ്രദർശനം മാത്രമാണ് മാറ്റുന്നത്.

    Rendered formsലെ വ്യക്തമായ validation സന്ദേശങ്ങൾ:

    * Member full name is required.

    Rendered action controls pending state അനുസരിച്ച് loading indicator കാണിക്കുന്നു. API save പരാജയപ്പെട്ടാൽ ബന്ധപ്പെട്ട error/notification കാണിക്കും; loading indicator മാത്രം persistence തെളിയിക്കുന്നില്ല.

    ### Implementation റഫറൻസുകൾ

    താഴെയുള്ള paths application repositoryയെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. Source പരിശോധിച്ച behavior ആണ്; browser test രേഖയല്ല.

    * `apps/web/src/app/sites/admin/[tenant]/members/[memberId]/page.tsx`
    * `apps/web/src/features/tenants/member-detail-view.tsx`
    * `apps/web/src/features/tenants/member-form-dialog.tsx`
    * `apps/web/src/features/tenants/contribution-history.tsx`
    * `apps/web/src/features/tenants/record-layout.tsx`

    Data/access helpers: `apps/web/src/lib/session.ts`, `apps/web/src/lib/server-api.ts`, `apps/web/src/lib/tenants.ts`, `apps/web/src/lib/members.ts`, `apps/web/src/lib/business-resources.ts`, `apps/web/src/lib/api-client.ts`

    ബന്ധപ്പെട്ട controller permission keys: `members.view`, `members.create`, `members.update`, `members.delete`. ഓരോ പ്രവർത്തനത്തിനും key വ്യത്യസ്തമാണ്; നിലവിലെ guard OWNER/ADMINനും platform-elevation contextനും operational bypass നൽകുന്നു. Control കാണുന്നതുകൊണ്ട് authorization ഉറപ്പില്ല.

    ### API behavior റഫറൻസുകൾ

    * `apps/api/src/members/education-employment.controller.ts`
    * `apps/api/src/members/health-support.controller.ts`
    * `apps/api/src/members/members.controller.ts`
  </Tab>
</Tabs>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.