# WishlistRestController ক্লাস

**নেমস্পেস:** `Bizzwishlist\API`  
**ফাইল:** `includes/API/WishlistRestController.php`

## বর্ণনা

`WishlistRestController` ক্লাস উইশলিস্টের REST API রুট রেজিস্টার ও হ্যান্ডেল করে। এটি শুধুমাত্র লগইন ইউজারদের জন্য।

## কনস্ট্যান্ট সমূহ

| কনস্ট্যান্ট | মান | বর্ণনা |
|-------------|------|--------|
| `NAMESPACE_V1` | `bizzwishlist/v1` | REST API নেমস্পেস |

## প্রপার্টি সমূহ

| প্রপার্টি | ধরন | বর্ণনা |
|-----------|------|--------|
| `$repository` | `WishlistRepository` | ডাটাবেস রিপোজিটরি |
| `$session` | `Session` | সেশন হেল্পার |

## API রুট সমূহ

**বেস URL:** `wp-json/bizzwishlist/v1/items`

| মেথড | ফাংশন | বর্ণনা |
|------|--------|--------|
| `GET` | `get_items()` | সকল উইশলিস্ট আইটেম রিটার্ন করে |
| `POST` | `add_item()` | প্রোডাক্ট উইশলিস্টে যোগ করে |
| `DELETE` | `remove_item()` | প্রোডাক্ট উইশলিস্ট থেকে সরায় |

## মেথড সমূহ

### `register_routes()`
- **হুক:** `rest_api_init`
- REST API রুট রেজিস্টার করে।

### `check_permission( WP_REST_Request $request )`
- **রিটার্ন:** `bool|WP_Error`
- লগইন চেক করে। লগইন না থাকলে 401 এরর দেয়।

### `get_items( WP_REST_Request $request )`
- **রিটার্ন:** `WP_REST_Response`
- প্রতিটি আইটেমে `id`, `product_id`, `name`, `price`, `price_html`, `image`, `permalink`, `created_at` থাকে।

### `add_item( WP_REST_Request $request )`
- **প্যারামিটার:** `product_id` (required, integer)
- **রিটার্ন:** `WP_REST_Response|WP_Error`
- প্রোডাক্ট না পেলে 404, ইতিমধ্যে থাকলে 409, সফল হলে কাউন্ট সহ রেসপন্স।

### `remove_item( WP_REST_Request $request )`
- **প্যারামিটার:** `product_id` (required, integer)
- **রিটার্ন:** `WP_REST_Response|WP_Error`
- প্রোডাক্ট সরায় এবং আপডেটেড কাউন্ট রিটার্ন করে।

## ব্যবহারের উদাহরণ

```bash
# সকল আইটেম পেতে
curl -X GET https://yoursite.com/wp-json/bizzwishlist/v1/items \
  -H "Authorization: Bearer YOUR_TOKEN"

# আইটেম যোগ করতে
curl -X POST https://yoursite.com/wp-json/bizzwishlist/v1/items \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d "product_id=42"

# আইটেম সরাতে
curl -X DELETE https://yoursite.com/wp-json/bizzwishlist/v1/items \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d "product_id=42"
```
