# Session ক্লাস

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

## বর্ণনা

`Session` ক্লাস গেস্ট ইউজারদের জন্য কুকি-ভিত্তিক সেশন পরিচালনা করে। এটি নিশ্চিত করে যে গেস্ট ইউজাররাও উইশলিস্ট ব্যবহার করতে পারে।

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

| কনস্ট্যান্ট | মান | বর্ণনা |
|-------------|------|--------|
| `COOKIE_NAME` | `bizzwishlist_session` | কুকির নাম |
| `COOKIE_EXPIRY` | `2592000` (৩০ দিন) | কুকির মেয়াদ (সেকেন্ডে) |

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

| প্রপার্টি | ধরন | বর্ণনা |
|-----------|------|--------|
| `$session_key` | `string\|null` | বর্তমান সেশন কী |

## মেথড সমূহ

### `init_session()`
- **হুক:** `init`
- **রিটার্ন:** `void`
- গেস্ট ইউজারের জন্য কুকি থেকে সেশন কী লোড করে।
- লগইন ইউজারের জন্য কিছু করে না।

### `get_session_key()`
- **রিটার্ন:** `string|null`
- বর্তমান সেশন কী রিটার্ন করে।

### `create_session()`
- **রিটার্ন:** `string`
- নতুন UUID v4 সেশন কী তৈরি করে এবং কুকি সেট করে।
- ইতিমধ্যে সেশন থাকলে সেটা রিটার্ন করে।
- HTTP-only, Secure (SSL থাকলে) কুকি সেট করে।

### `get_current_user_id()`
- **রিটার্ন:** `int|null`
- লগইন ইউজারের আইডি রিটার্ন করে, অন্যথায় `null`।

### `get_owner()`
- **রিটার্ন:** `array`
- `['user_id' => int|null, 'session_key' => string|null]` রিটার্ন করে।
- লগইন ইউজারের জন্য `user_id` সেট করে।
- গেস্টের জন্য `session_key` সেট করে (না থাকলে নতুন তৈরি করে)।
- এটি সবচেয়ে বেশি ব্যবহৃত মেথড - প্রায় প্রতিটি AJAX ও রেন্ডার মেথডে কল হয়।
