Skip to main content
Source snapshot: 13 October 2026. These pages describe the current implementation, including unfinished controls. See coverage and review notes.

Houses directory

Host: admin.<ROOT_DOMAIN> · Route: /[tenant]/houses

Purpose and access

Maintain physical dwellings separately from the families and members linked to them.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 directory has Add house, search by number/name/address, division and active-status filters, and house rows with edit and activation actions. The dialog contains display number, name, division, address, and notes.

Fields and displayed information

Displayed table columns: House, Division, Address, Status, Actions.

Fields and filters: Houses registry

Fields and filters: House form dialog

Actions

Interaction sequence

Add house → enter the required display number → choose a division if applicable → save → the dialog closes and the list refreshes. Open a house for its household information. Row edit updates the record; activation toggles its active status.

States and rules

The page handles denied houses.view with a permission message. Empty search results are distinct from an empty directory. Add/edit sends API requests and leaves an inline error visible if the request fails.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]/houses/page.tsx
  • apps/web/src/features/tenants/houses-registry.tsx
  • apps/web/src/features/tenants/house-form-dialog.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/houses.ts, apps/web/src/lib/structure.ts, apps/web/src/lib/api-client.tsRelevant controller permission keys: houses.view, houses.create, houses.update, houses.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/houses/houses.controller.ts