# Implementation Plan

## Project: RamionMarketplace - Laravel 12 REST API

### Work Items

#### 1. Terms & Conditions CRUD

Implement full CRUD for `terms_conditions` resource following established Repository Pattern conventions.

**Files to create (9 total):**

| # | File | Purpose |
|---|------|---------|
| 1 | `database/migrations/2026_05_20_000000_create_terms_conditions_table.php` | Migration with camelCase columns, custom UUID PK |
| 2 | `app/Models/TermsCondition.php` | Eloquent model with HasSearch, HasFilter, HasPagination, HasSort, HasCustomUuid |
| 3 | `app/Http/Controllers/TermsCondition/TermsConditionRepository.php` | Repository extending BaseRepository |
| 4 | `app/Http/Controllers/TermsCondition/TermsConditionController.php` | Controller with list, create, single, update, delete |
| 5 | `app/Http/Requests/TermsCondition/StoreTermsConditionRequest.php` | Store validation rules |
| 6 | `app/Http/Requests/TermsCondition/UpdateTermsConditionRequest.php` | Update validation rules |
| 7 | `app/Http/Resources/TermsConditionResource.php` | Response transformer |
| 8 | `app/Http/Controllers/TermsCondition/routes.php` | Route definitions |
| 9 | `routes/api.php` (modify) | Register `terms-condition` prefix |

**Model fields:**
- `id` (PK, custom UUID prefix `TNC_`)
- `title` (string, required)
- `content` (text, required)
- `version` (string, nullable)
- `isActive` (boolean, default true)
- `createdAt`, `updatedAt` (camelCase timestamps)

**Searchable:** `['title', 'content']`
**Filterable:** `['isActive', 'version']`
**Sortable:** `['title', 'createdAt', 'updatedAt']`
