WP-04 Flutter spec
The store shell is in afia-app and is smaller than the design. Contract type: Clinic. Reuse Account and Role from identity. Wire: exchange/admin.md.
Usage
The admin role shell calls AdminRepository.listAccounts, assignRole, getClinic, and updateClinic. Other roles do not open lib/presentation/admin/.
Domain
Clinicatlib/domain/admin/clinic.dart. ContractClinic.- Reuse identity
AccountandRole. Do not redefine them.
Models
ClinicModelatlib/data/admin/clinic_model.dart.fromJsonkeysname,timezone.- Directory rows reuse
AccountModelfrom identity data, or a thin admin view that does not persist a copy.
Data sources
AdminRemoteDataSourceatlib/data/admin/admin_remote_data_source.dart.
listAccounts() -> Account[]
assignRole(accountId, role) -> Account
getClinic() -> Clinic
updateClinic(name, timezone) -> Clinic
Uses ApiConfig admin prefix.
Repositories
AdminRepositoryatlib/domain/admin/admin_repository.dart.
Presentation under lib/presentation/admin/ imports the repository only. Gate the shell on ADMIN.
Does not do
Java types. afia-web pages. Invented admin screens. A second user table. A second HTTP client.