# Amba Agent App – UI Plan (Phase 1, UI-Only)

## 1. Purpose

The Amba Agent app provides agents with a platform to:

- Manage multiple clients’ payment accounts.
- Schedule reminders and manage payment-related events.
- Communicate and act on client payments through a streamlined UI.

This phase focuses **only on UI/flows**, with dummy data and no real backend integration.

---

## 2. Scope (Phase 1)

From the SRS:

- **Multi-client management**

  - Each agent manages multiple client profiles.
  - Each client can have multiple linked payment accounts.

- **Transaction management**

  - Agents can initiate payments on behalf of clients.
  - Transactions are displayed and tracked in a list view.

- **Scheduling & reminders**

  - Simple UI to show upcoming reminders.
  - Scheduling controls are UI-only for now.

- **Notifications**

  - UI toggles for SMS, in-app, email notifications (no real sending yet).

- **Localization**

  - English-first UI with a language selector prepared for Arabic and others.
  - No full RTL logic in this phase, only the settings hooks.

- **Security**

  - Login screen + simulated biometric toggle (UI-only).

- **Reporting**
  - Transactions list and basic summary cards (dummy data).

---

## 3. Navigation Structure

### Bottom Tabs (Agent App)

1. **Home**
2. **Recipients**
3. **Requests**
4. **Transactions**
5. **Profile**

From these tabs we navigate to:

- Recipient Detail
- Pay (Payment initiation) Screen
- Request Detail (bottom sheet)
- Optional “Reports” placeholder (or reuse Transactions)

---

## 4. Screens and UI Details

### 4.1 Login (Agent Login)

**Goal:** Basic auth + prompt for biometrics after first login.

- Fields:
  - Email / Phone
  - Password
- Buttons:
  - Primary: **Sign In**
  - Secondary: **Forgot password?**
- After first successful login (simulated):
  - Show a card or bottom sheet:
    - Title: “Enable biometric login”
    - Buttons: **Enable Face ID / Fingerprint**, **Not now**
  - For Phase 1, this just flips a local toggle (no OS integration).

---

### 4.2 Home

**From flow:**

- Login → Home → Decision (to Profile / Recipients / Transactions / Requests / Pay).
- “On this page he can show the amount of credits he has on the application.”

**UI Sections:**

- **TopBar**

  - Greeting (“Hi, [Agent Name]”)
  - Notification bell
  - Agent avatar

- **Credits Card**

  - Large amount: “Available Credits”
  - Subtitle: “Balance usable for client payments”
  - Optional “Last updated” label (dummy)

- **Quick Actions Row**

  - Buttons to navigate:
    - Recipients
    - Requests
    - Transactions
    - Pay

- **Upcoming Reminders**
  - Vertical list with:
    - Client name
    - Due date / time
    - Small status pill (e.g. “Upcoming”)
  - All populated with dummy items.

---

### 4.3 Recipients (Client Management)

**From doc:**

- “Recipient list including account associated with detail page also showing the schedule for when they want payments.”
- “Multi-client management; associate multiple accounts per client.”

#### Recipients List Screen

- **Search bar**: “Search recipients”
- Optional filter icon on the right.
- **Recipient Card** per client:
  - Name (Individual / Business)
  - Tag pill: `Individual` or `Business`
  - Short line: e.g. “3 accounts” or main account alias
  - Small “Next payment” label if schedule exists
  - On tap → Recipient Detail

#### Recipient Detail Screen

- **Header**

  - Name, avatar/initials
  - Client type pill

- **Accounts Section**

  - Card or list: bank name + account number for each linked account
  - “Add Account” button:
    - Opens bottom sheet similar to Edit Profile’s multi-account UI:
      - Bank selector
      - Account number input
      - Save (dummy only)

- **Schedules Section**

  - List of schedules:
    - e.g. “Every Monday 10:00”, “Monthly, 1st at 09:00”
  - Button: **Manage Schedules**:
    - Opens UI-only bottom sheet with:
      - Frequency selector (Daily / Weekly / Monthly / Custom)
      - Time selector (simple text field for now)
      - Save (no backend)

- **Actions**
  - **Pay Now** → navigates to Pay screen with this recipient preselected.
  - **View Transactions** → navigates to Transactions with a client filter preset (UI-only).

---

### 4.4 Transactions

**From doc:**

- “All the transaction he has processed.”
- Reporting & tracking.

#### Transactions Screen

- **Filter/Search Bar**

  - Text input: “Search by client or reference”
  - Filter chips:
    - All
    - Success
    - Pending
    - Failed

- **Summary Row (Optional)**

  - Today’s total
  - This week’s total
  - Total transactions
  - All dummy data.

- **Transactions List**
  - Each row:
    - Amount + currency
    - Status pill: Success/Pending/Failed
    - Client name
    - Date and time
    - Small method icon (Telebirr/Chapa/etc., static icon)

For Phase 1, the list is fed by a mocked array.

---

### 4.5 Requests

**From flow:**

- “Every book now request for the agent himself stands here. With the person, time, and date.”

#### Requests Screen

- List of **Request Cards**:

  - Client name
  - Scheduled date & time
  - Requested amount (optional)
  - Status: Pending / Accepted / Completed (local state only)
  - Buttons:
    - **View Details**
    - **Pay Now**

- **Request Detail Bottom Sheet**

  - Client info
  - Requested schedule
  - Notes/description (dummy)
  - Actions:
    - **Mark as Accepted**
    - **Mark as Done**
  - All actions affect only in-memory state.

- **Pay Now** from a request:
  - Opens Pay screen with recipient + amount pre-filled (no real payment).

---

### 4.6 Pay

**From flow:**

- “Where he can make the payment same flow as per usual.”

#### Pay Screen

- **Context**

  - If navigated from Recipient:
    - Recipient field is pre-filled and locked.
  - If from Home:
    - Recipient selector row: “Select Recipient” → bottom-sheet list.

- **Fields**

  - Amount input
  - Payment method dropdown:
    - Telebirr
    - Chapa
    - Other methods (dummy options)
  - Optional note / description

- **Actions**
  - Primary: **Review & Confirm**
    - Opens bottom sheet:
      - Shows summary: recipient, amount, method
      - Button: **Confirm (UI only)**:
        - Closes sheet and maybe sets a local “Success” toast.
  - No network calls in Phase 1.

---

### 4.7 Profile (Agent Profile)

**From doc:**

- Multi-level access, notification channels, localization, etc.

#### Profile Screen

- **Agent Info Card**

  - Name
  - Role: Agent
  - Agent ID or code

- **Sections**

  1. **Account & Security**

     - `Change Password` row (placeholder screen)
     - `Biometric Login` toggle (ties to login biometric prompt state)

  2. **Notifications**

     - Toggles:
       - SMS notifications
       - In-app notifications
       - Email notifications
     - All stored in local state only.

  3. **Localization**

     - Language selector row:
       - English
       - Arabic
       - Other supported languages (am, fr, om, ti)
     - For Phase 1, dont do anything on localization.

  4. **Reports**

     - Row: **View Reports**
     - Navigates to Transactions screen or a placeholder “Reports coming soon” screen.

  5. **Logout**
     - Simple button that routes back to Login screen (no token logic yet).

---

## 5. Implementation Notes (Phase 1)

- **No backend calls**:

  - All screens use mocked arrays/state.
  - No SMS, email, or payment gateway calls.

- **Biometrics**

  - Only UI affordances (prompt, toggle).
  - Underlying OS integration is future work.

- **Localization**

  - This file is stored under [locales/en](cci:7://file:///Users/user/PROJECTS/NOVEMBER/amba/locales/en:0:0-0:0) as a reference for future translation.
  - Actual text keys (i18n) can be extracted later.

- **Design**
  - Reuse existing Amba components where possible:
    - `ScreenWrapper`, [TopBar](cci:1://file:///Users/user/PROJECTS/NOVEMBER/amba/components/ui/topBar.tsx:10:0-55:1), `Input`, `Button`, `BottomSheet`, cards, etc.
  - Stick to the existing Amba color palette and typography.

---

Overall structure
Goal: Agent can log in, see credits, manage recipients/clients, see transactions, handle “book now” requests, and trigger payments.

For this phase we:

Keep Amba look & feel (colors, typography, cards).
Build new agent-focused screens and navigation.
Use static/dummy data only, no real payment/notification backend yet. 2. Navigation proposal
Bottom tabs for Agent app:

Home
Recipients
Requests
Transactions
Profile
From these, we can navigate to:

Recipient Detail (per client)
Pay flow (can be reached from Home or Recipient Detail)
Maybe a Calendar/Reminders view later (for now: simple section in Home / Recipient Detail). 3. Screen-by-screen UI plan
3.1 Login (Agent Login)
From doc:

“Login should promote for biometric access as well rather than password after first login.”
UI changes:

Login Screen
Email / Phone input.
Password field.
Primary CTA: Sign In.
Secondary: Forgot password?.
After first successful login (simulated via local state for now), show:
Bottom sheet or inline card:
“Enable biometric login” with Enable Face ID / Fingerprint button and Not now.
Next phase we only simulate biometrics (no real OS-level integration yet, just toggle state).
3.2 Home
From doc + flow:

Show agent credits.
Entry point to other flows.
UI:

Top bar:
TopBar
-style with:
Greeting (“Hi, [Agent Name]”).
Notification bell.
Agent avatar.
Credits Card:
Big number: “Available Credits”.
Subtitle: “Balance usable for client payments”.
Quick Actions Row (buttons/cards):
Recipients
Requests
Transactions
Pay
Upcoming Reminders (for scheduling feature, UI-only):
List of “Next payment reminders” with:
Client name.
Due date/time.
Small status pill (e.g. “Pending”).
All dummy data for now.

3.3 Recipients (Client Management)
From doc + post-it:

“This will have the recipient list including account associated with detail page also showing the schedule for when they want payments.”
“Multi-client management, multiple accounts per client.”
List Screen UI:

Search bar: Search recipients.
Filters (optional for now, icon only).
List of Recipient Cards:
Name (person or business).
Tags: Individual / Business.
Short info: main account or “3 accounts”.
Next scheduled payment date (if any).
Tap → Recipient Detail.
Recipient Detail UI:

Header:
Name, avatar/initial icon.
Client type pill.
Accounts section:
Card listing linked accounts (bank name, account number).
“Add Account” button (UI only; bottom sheet like Edit Profile multi-account).
Schedule section (reminders):
List of schedules: “Every Monday 10:00”, “Monthly 1st at 9:00”.
Button: Manage Schedules (for now shows bottom sheet with dummy options).
Actions:
Pay Now button (goes to Pay UI with recipient preselected).
View Transactions (filter Transactions screen by this recipient – UI-only filter).
3.4 Transactions
From doc:

“All the transaction he has processed.”
Reporting & tracking.
UI:

Search / filter bar:
Search by client.
Filter chip row: All, Success, Pending, Failed.
Transactions list:
Each row: amount, status pill, client name, date/time, small method icon.
Optional summary at top:
Today’s total, This week, etc. (dummy numbers).
No real data, just static mocked list.

3.5 Requests
From flow note:

“Every book now request for the agent himself stands here. With the person, time, and date.”
This is basically a queue of incoming scheduled “Book Now” / payment requests.

UI:

List of Request Cards:
Client name.
Requested date & time.
Amount (if part of the request).
Status: Pending, Accepted, Completed (UI-only).
CTA buttons:
View Details → Request Detail bottom sheet.
Pay Now → Pay screen with details pre-filled.
Request Detail (BottomSheet):
Client info.
Requested schedule.
Notes.
UI-only actions: Mark as Accepted, Mark as Done (just local state change).
3.6 Pay
From flow note:

“Where he can make the payment same flow as per usual.”
This is the payment initiation screen.

UI:

If navigated from Recipient / Request:
Recipient pre-filled and locked.
If from Home:
Recipient picker at top (Select Recipient row → bottom sheet list).
Fields:
Amount.
Payment method (dropdown: Telebirr, Chapa, etc).
Optional note / description.
CTA:
Review & Confirm (UI-only):
Opens confirmation bottom sheet showing summary, “Confirm (UI only)” button.
We won’t hit any gateway APIs yet; we just simulate the flow.

3.7 Profile (Agent Profile)
From doc:

Multi-level access, localization, notification channels, etc.
UI:

Agent info card: name, role (Agent), ID.
Sections:
Account & Security:
Change password (UI-only).
Biometric login toggle (syncs with Login prompt state).
Notifications:
Toggles for SMS, In-app, Email (UI-only).
Localization:
Language selector (English / Arabic; no real RTL yet in phase 1, just selection).
Reports:
“View Reports” → for now goes to Transactions screen pre-filtered or a placeholder “coming soon” page.
Logout button. 4. Phase 1 implementation plan (UI-only)
Once you confirm the above direction, I’ll:

Set up Agent navigation:
New or modified tabs for
Home
, Recipients, Requests, Transactions, Profile.
Create minimal versions of:
AgentHomeScreen
AgentRecipientsScreen + RecipientDetail
AgentTransactionsScreen
AgentRequestsScreen
AgentPayScreen
AgentProfileScreen
Wire in dummy data for:
Recipients (with multiple accounts & schedules).
Transactions.
Requests (bookings).
Keep everything UI-only:
No real payment, no SMS/email sending, no real biometrics or gateway calls.
