## Final Implementation Plan for Hashkey/Payload URL Encoding System

### Understanding the Requirement

Based on your clarification:
- **Current navigation pattern:** `navigate({ page: 'EditUser', props: { target_user: hashkey } })`
- **URL format should be:** `/page-name--h:HASHKEY` or `/page-name--e:PAYLOAD`
- **Hashkeys are passed as values** (not prop names)
- **Encrypted payloads needed** for sensitive data
- **Universal resolver** - same mechanism for users, products, stores, etc.

### Revised Implementation Plan

#### 1. Frontend - New Composables

**File: `resources/js/composables/useUrlArgument.js`**
```javascript
export function useUrlArgument() {
  // Extract hashkey/payload from URL path segments
  // Parse format like "/edituser--h:HASHKEY" or "/product--e:ENCODED_PAYLOAD"
  // Return: { slug, type, hashkey, payload }
}
```

**File: `resources/js/composables/useUrlEncoder.js`**
```javascript
export function useUrlEncoder() {
  const encodeHash = (hashkey) => `h:${hashkey}`;
  const encodePayload = (payload) => `e:${base64Encode(JSON.stringify(payload))}`;
  // Returns URL-friendly encoded strings
}
```

#### 2. Frontend - Updated useNavigate

Modify existing `resources/js/composables/Core/useNavigate.js` to:
- Detect hashkey/payload in props and encode them into URL
- Support format: `/page-name--h:HASHKEY` or `/page-name--e:PAYLOAD`
- Maintain backward compatibility with current navigation
- Extract from current URL on page load

#### 3. Backend - PHP Helpers

**File: `app/Support/RouteArgumentParser.php`**
```php
class RouteArgumentParser {
    public function parseArgument($argument)
    // Parse format: "page-name--h:HASHKEY" or "page-name--e:ENCODED_PAYLOAD"
    // Returns structured data for the resource
}
```

**File: `app/Support/HashkeyResolver.php`**
```php
class HashkeyResolver {
    public function resolveByHashkey($hashkey, $modelClass)
    // Generic resolver that accepts any model class (User, Product, Store, etc.)
}
```

#### 4. Backend - Middleware

**File: `app/Middleware/DecodeRouteArgumentMiddleware.php`**
```php
class DecodeRouteArgumentMiddleware {
    public function handle($request, Closure $next)
    // Automatically parses URL arguments and attaches to request
    // Makes decoded data available as $request->decodedRoute
}
```

### URL Format Examples
- **User route:** `/edituser--h:USER_HASHKEY123`
- **Product route:** `/product/edit--h:PRODUCT_HASH456`
- **Store route:** `/store/view--h:STORE_HASH789`
- **Payload route (encrypted):** `/data/review--e:ENCODED_PAYLOAD`

### Current Navigation to URL Mapping

| Current Nav | New URL Format |
|-------------|----------------|
| `navigate({ page: 'EditUser', props: { target_user: hashkey } })` | `/edituser--h:HASHKEY` |

### Migration Strategy

1. **Phase 1: Composables** - Create `useUrlArgument.js` and `useUrlEncoder.js`
2. **Phase 2: Frontend Integration** - Update `useNavigate.js`
3. **Phase 3: Backend Parsing** - Create PHP helpers
4. **Phase 4: Middleware** - Add middleware for automatic parsing
5. **Phase 5: Testing** - Verify navigation works with both old and new formats

### Key Features

- ✅ Backward compatible (existing navigation still works)
- ✅ Universal hashkey resolver for all resource types
- ✅ Encrypted payload support for sensitive data
- ✅ Standard URL format across all routes