# 🔄 Data Flow - Complete Setup

## 📊 Data Flow Diagram

```
┌─────────────────────────────────┐
│  Source: CMS API                 │
│  https://cms.illumemedia.app/   │
│  /apiv_charity.php              │
│  (Charity Data Source)           │
└──────────────┬───────────────────┘
               │
               │ GET Request
               │ ?get-charities=1&all=1
               ▼
┌─────────────────────────────────┐
│  Processing: MCP Server         │
│  https://mcp.illumemedia.app/   │
│                                  │
│  Files:                          │
│  - api.php (REST API)            │
│  - mcp.php (MCP Protocol)        │
│  - utils.php (Data Processing)   │
│  - config.php (Source URL)       │
└──────────────┬───────────────────┘
               │
               │ Processed Data
               │ (Filtered, Paginated)
               ▼
┌─────────────────────────────────┐
│  Destination: ChatGPT/GPT       │
│  - Custom GPT Actions            │
│  - MCP Connector                 │
│  - OpenAI API                    │
└─────────────────────────────────┘
```

## 🔗 Complete Flow

### Step 1: Data Source (CMS)
**URL:** `https://cms.illumemedia.app/apiv_charity.php`

**Request:**
```bash
GET https://cms.illumemedia.app/apiv_charity.php?get-charities=1&all=1
```

**Response:**
```json
{
  "success": true,
  "urban_data": [
    {
      "name": "Charity Name",
      "ein": "123456789",
      "city": "City",
      "state": "CA",
      "zip": "12345"
    }
  ]
}
```

### Step 2: Processing (MCP Server)
**URL:** `https://mcp.illumemedia.app/`

**Files:**
- `config.php` - Source API URL configured
- `utils.php` - Fetches from CMS, processes data
- `api.php` - REST API endpoint
- `mcp.php` - MCP Protocol endpoint

**Process:**
1. User request aata hai `mcp.illumemedia.app` par
2. `utils.php` se `cms.illumemedia.app` se data fetch hota hai
3. Data filter/paginate hota hai
4. Response return hota hai

**Example Request:**
```bash
GET https://mcp.illumemedia.app/api.php?action=search_charities&name=Red%20Cross
```

**Internal Flow:**
```
api.php → utils.php → fetchAllCharities() 
→ cms.illumemedia.app/apiv_charity.php
→ Process & Filter
→ Return to User
```

### Step 3: Destination (ChatGPT/GPT)

**Option A: Custom GPT (OpenAPI)**
```
ChatGPT → mcp.illumemedia.app/api.php
→ cms.illumemedia.app (data fetch)
→ Process
→ Return to ChatGPT
```

**Option B: MCP Protocol**
```
ChatGPT → mcp.illumemedia.app/mcp.php
→ cms.illumemedia.app (data fetch)
→ Process
→ Return to ChatGPT
```

## ⚙️ Configuration Files

### config.php
```php
// Source API URL
define('API_BASE_URL', 'https://cms.illumemedia.app/apiv_charity.php');
```

### utils.php
```php
// Fetches from CMS
function fetchAllCharities() {
    $url = API_BASE_URL . '?get-charities=1&all=1';
    // cURL request to cms.illumemedia.app
}
```

### api.php / mcp.php
```php
// Process requests
// Call fetchAllCharities()
// Filter, paginate
// Return to ChatGPT/User
```

## ✅ Verification Checklist

### 1. Source API Working?
```bash
curl "https://cms.illumemedia.app/apiv_charity.php?get-charities=1&all=1"
```
✅ Should return charity data

### 2. MCP Server Working?
```bash
curl "https://mcp.illumemedia.app/api.php?action=test"
```
✅ Should return success message

### 3. Data Flow Working?
```bash
curl "https://mcp.illumemedia.app/api.php?action=get_charities&page=1&perPage=5"
```
✅ Should return data from CMS (processed)

### 4. ChatGPT Integration?
- Custom GPT: `https://mcp.illumemedia.app/api.php`
- MCP: `https://mcp.illumemedia.app/mcp.php`
✅ Should work with ChatGPT

## 🔧 Current Configuration

### Source (CMS)
- **URL:** `https://cms.illumemedia.app/apiv_charity.php`
- **Method:** GET
- **Params:** `?get-charities=1&all=1`
- **Config:** `config.php` line 7

### Processing (MCP)
- **URL:** `https://mcp.illumemedia.app/`
- **REST API:** `api.php`
- **MCP Protocol:** `mcp.php`
- **Data Source:** `config.php` → `utils.php`

### Destination (ChatGPT)
- **Custom GPT:** OpenAPI schema
- **MCP:** JSON-RPC 2.0 protocol
- **Both use:** `mcp.illumemedia.app`

## 🚀 Complete Setup

1. ✅ **Source configured:** `cms.illumemedia.app`
2. ✅ **Processing ready:** `mcp.illumemedia.app`
3. ✅ **ChatGPT ready:** OpenAPI + MCP
4. ✅ **Data flow:** CMS → MCP → ChatGPT

**Sab kuch set hai! 🎉**

---

**Data Flow:**
```
cms.illumemedia.app (Source)
    ↓
mcp.illumemedia.app (Processing)
    ↓
ChatGPT/GPT (Destination)
```

