mifos-mobile/claude-product-cycle/client-layer/LAYER_STATUS.md

5.8 KiB

Client Layer - Status & Memory

Layer: Network + Data Command: /client [Feature] Location: core/ (network, data)


Current Status

Sub-Layer Components Status
Network (Services) 13 Complete
Network (DTOs) 40+ Complete
Data (Repositories) 17 Complete

Layer Structure

core/
├── network/                    # API Layer
│   └── src/commonMain/kotlin/.../network/
│       ├── DataManager.kt           # Service accessor
│       ├── KtorfitClient.kt         # Ktorfit setup
│       ├── services/                # API interfaces
│       │   ├── AuthenticationService.kt
│       │   ├── BeneficiaryService.kt
│       │   ├── ClientChargeService.kt
│       │   ├── ClientService.kt
│       │   ├── GuarantorService.kt
│       │   ├── LoanAccountsListService.kt
│       │   ├── NotificationService.kt
│       │   ├── RecentTransactionsService.kt
│       │   ├── RegistrationService.kt
│       │   ├── SavingAccountsListService.kt
│       │   ├── ShareAccountService.kt
│       │   ├── ThirdPartyTransferService.kt
│       │   └── UserDetailsService.kt
│       ├── model/                   # DTOs
│       └── di/NetworkModule.kt
│
├── data/                       # Data Layer
│   └── src/commonMain/kotlin/.../data/
│       ├── repository/              # Interfaces
│       ├── repositoryImpl/          # Implementations
│       └── di/RepositoryModule.kt
│
├── model/                      # Domain Models (shared)
├── database/                   # Local DB (Room)
├── datastore/                  # Preferences
├── designsystem/               # UI components
├── ui/                         # Shared UI
└── common/                     # Utilities

Services (Network Layer)

Service Purpose Base Endpoint
AuthenticationService Login, logout /self/authentication
RegistrationService User registration /self/registration
ClientService Client profile /self/clients
UserDetailsService User details /self/userdetails
SavingAccountsListService Savings accounts /self/savingsaccounts
LoanAccountsListService Loan accounts /self/loanaccounts
ShareAccountService Share accounts /self/shareaccounts
BeneficiaryService Beneficiaries CRUD /self/beneficiaries
ThirdPartyTransferService Transfers /self/accounttransfers
RecentTransactionsService Transaction history /self/transactions
NotificationService Notifications /self/notifications
GuarantorService Guarantor management /self/loans/{id}/guarantors
ClientChargeService Client charges /self/clients/{id}/charges

Repositories (Data Layer)

Repository Service Used Status
UserAuthRepository AuthenticationService Complete
UserDataRepository - (DataStore) Complete
UserDetailRepository UserDetailsService Complete
ClientRepository ClientService Complete
AccountsRepository Multiple services Complete
SavingsAccountRepository SavingAccountsListService Complete
LoanRepository LoanAccountsListService Complete
ShareAccountRepository ShareAccountService Complete
BeneficiaryRepository BeneficiaryService Complete
TransferRepository Multiple services Complete
ThirdPartyTransferRepository ThirdPartyTransferService Complete
RecentTransactionRepository RecentTransactionsService Complete
NotificationRepository NotificationService Complete
GuarantorRepository GuarantorService Complete
ClientChargeRepository ClientChargeService Complete
HomeRepository Multiple services Complete
ReviewLoanApplicationRepository LoanAccountsListService Complete

DataManager APIs

API Service Lazy Loaded
authenticationApi AuthenticationService Yes
registrationApi RegistrationService Yes
clientsApi ClientService Yes
userDetailsApi UserDetailsService Yes
savingAccountsListApi SavingAccountsListService Yes
loanAccountsListApi LoanAccountsListService Yes
shareAccountApi ShareAccountService Yes
beneficiaryApi BeneficiaryService Yes
thirdPartyTransferApi ThirdPartyTransferService Yes
recentTransactionsApi RecentTransactionsService Yes
notificationApi NotificationService Yes
guarantorApi GuarantorService Yes
clientChargeApi ClientChargeService Yes

Critical Rules

REPOSITORY ALWAYS USES DataManager!

CORRECT: Repository → DataManager → Service
WRONG:   Repository → Service directly

Build Commands

./gradlew :core:network:build
./gradlew :core:data:build
./gradlew :core:model:build

DI Modules

Module Location Registration
NetworkModule core/network/di/ DataManager, KtorfitClient
RepositoryModule core/data/di/ All Repositories
PreferenceModule core/datastore/di/ UserPreferencesRepository
DatabaseModule core/database/di/ Room Database

All registered in: cmp-navigation/di/KoinModules.kt


  • Patterns: claude-product-cycle/design-spec-layer/_shared/PATTERNS.md
  • API Specs: claude-product-cycle/design-spec-layer/features/[feature]/API.md
  • Layer Guide: claude-product-cycle/client-layer/LAYER_GUIDE.md

Changelog

Date Change
2025-12-26 Created LAYER_STATUS.md
2025-12-26 All 17 repositories verified complete