-- =====================================================
-- Migration v2:
--  1. Spin wheel segments (Daily Bonus)
--  2. Withdraw schedule (payment cycle window)
--  3. Task screenshot proof support
-- schema.sql + migration_user_states.sql এর পরে এটা রান করুন
-- =====================================================

-- ---------- 1. SPIN WHEEL ----------
CREATE TABLE IF NOT EXISTS `spin_segments` (
    `id`          INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `label`       VARCHAR(32) NOT NULL,          -- হুইলে যা দেখাবে, যেমন "10 কয়েন"
    `coin_amount` DECIMAL(18,4) NOT NULL,
    `weight`      INT UNSIGNED NOT NULL DEFAULT 1, -- বেশি weight = বেশিবার আসার সম্ভাবনা
    `color`       VARCHAR(16) DEFAULT NULL,        -- হেক্স কালার (ঐচ্ছিক, না দিলে অটো জেনারেট হবে)
    `is_active`   TINYINT(1) NOT NULL DEFAULT 1,
    `sort_order`  INT NOT NULL DEFAULT 0,
    `created_at`  DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ডিফল্ট ৬টা সেগমেন্ট (admin panel থেকে এডিট/পরিবর্তন করা যাবে)
INSERT INTO `spin_segments` (`label`, `coin_amount`, `weight`, `sort_order`) VALUES
('5 কয়েন', 5, 30, 0),
('10 কয়েন', 10, 25, 1),
('15 কয়েন', 15, 20, 2),
('20 কয়েন', 20, 12, 3),
('50 কয়েন', 50, 8, 4),
('100 কয়েন', 100, 5, 5);

-- daily_reward_claims এ কোন সেগমেন্টে লেগেছিল তার রেফারেন্স রাখা (history/audit এর জন্য)
ALTER TABLE `daily_reward_claims`
    ADD COLUMN `segment_id` INT UNSIGNED DEFAULT NULL AFTER `streak_day`;

-- ---------- 2. WITHDRAW SCHEDULE ----------
INSERT INTO `settings` (`setting_key`, `setting_value`) VALUES
('withdraw_schedule_enabled', '0'),       -- 0 = সবসময় খোলা, 1 = নির্দিষ্ট সাইকেলে
('withdraw_cycle_days', '2'),             -- প্রতি কত দিনে একটা পেমেন্ট সাইকেল
('withdraw_window_days', '1'),            -- সাইকেলের শুরুর কতদিন request নেওয়া হবে
('withdraw_cycle_start_date', CURDATE())  -- সাইকেল গণনা শুরুর রেফারেন্স তারিখ
ON DUPLICATE KEY UPDATE `setting_key`=`setting_key`;

-- ---------- 3. TASK SCREENSHOT PROOF ----------
-- নতুন টাস্ক টাইপ: account_creation (স্ক্রিনশট প্রুফ লাগবে)
ALTER TABLE `tasks`
    MODIFY COLUMN `type` ENUM('join_channel','visit_link','app_install','account_creation','custom')
    NOT NULL DEFAULT 'custom';

-- ইউজারের আপলোড করা স্ক্রিনশটের path(s) - JSON array হিসেবে সেভ হবে
ALTER TABLE `task_completions`
    ADD COLUMN `proof_images` TEXT DEFAULT NULL AFTER `status`,
    ADD COLUMN `admin_note`   VARCHAR(255) DEFAULT NULL AFTER `proof_images`;
