Aller au contenu principal

WP-04 exchange

Contract types Account, Role, Clinic. Envelope: envelope.md.

Workflow​

  1. An ADMIN session lists accounts under /api/v1/afia/admin.
  2. The API returns existing Account rows. It does not create a second user table.
  3. The client assigns a Role that already exists on Account.
  4. The client reads and writes one clinic resource (name, timezone).
  5. A non-admin session is forbidden. The Flutter admin shell does not open.

Wire​

GET /api/v1/afia/admin/users

res { data: [ { "id", "phone", "email", "roles" } ], ... }

POST or PATCH role assignment:

req { "accountId", "role" }
res { data: { "id", "phone", "email", "roles" }, ... }

Clinic under /api/v1/afia/admin (one resource):

req { "name", "timezone" }
res { data: { "name", "timezone" }, ... }

Errors: not admin, unknown account, unknown role, validation on clinic fields.

Ownership​

WP-04 writes health.afia.app.admin and lib/*/admin/. Shared language is Clinic plus identity Account and Role.

Does not do​

Class internals. Invented admin screens. afia-web as an admin console.