# TANRAIL ONE — Future Business Expansion Guide

## 1. Scenario
TANRAIL Investments Limited has just launched a new business: **TANRAIL Transport**. 
The development team has been tasked with adding this to the platform. 

**DO NOT start coding randomly.** Follow this guide to ensure the new business integrates seamlessly into the architecture.

## 2. Expansion Process

### Step 1: Business Analysis & Capability Mapping
- Identify what "Transport" actually does.
- They sell a service (moving goods).
- They have assets (trucks).
- They have staff (drivers).
- They invoice customers.

### Step 2: Existing Capability Reuse
Map the requirements to the existing Core:
- **Can we use Core Users?** Yes, for managers and drivers.
- **Can we use Core Customers?** Yes.
- **Can we use Core Sales/Invoices?** Yes, a transport booking is just an Order, resulting in an Invoice.
- **Can we use Core Assets?** Yes, trucks are assets.

### Step 3: Identify Missing Capabilities
What does Transport need that doesn't exist yet?
- "Route Planning"
- "Vehicle Maintenance Logs"

### Step 4: Reusable vs. Extension Decision
- **Route Planning:** Could the Catering delivery team use this? Could the Water distribution team use this? **Yes.** Therefore, build it as a **Reusable Capability** (e.g., `Modules/FleetManagement`), not a business-specific extension.
- **Toll Road Fee Tracking specific to heavy trucks:** Maybe highly specific to Transport. Build as a **Business-Specific Extension** (e.g., `Extensions/Transport`).

### Step 5: System Configuration
1. Go to Super Admin Panel -> Create Business Unit "TANRAIL Transport" (`code: TRANS`).
2. Create Branches (e.g., "Dar es Salaam Depot", "Dodoma Depot").
3. Enable Modules for `TRANS`: `core.sales`, `core.finance`, `reusable.fleet`.
4. Create Roles (e.g., "Transport Manager", "Driver") and assign Users to `TRANS`.

### Step 6: UI & Dashboard Updates
- The system automatically handles context switching.
- Create a specific Operational Dashboard view for `TRANS` showing active routes and truck status.

### Step 7: Testing
- Write tests ensuring that Transport managers CANNOT see Restaurant tables.
- Verify that Invoices generated by Transport correctly tag `business_unit_id` and roll up into the Executive Dashboard.

## 3. Summary
By following this process, 80% of the software required for the new business is already written and tested. The team only needs to build the 20% that is truly unique, ensuring rapid, stable expansion.
