<?php

namespace Database\Seeders;

use App\Models\Category;
use App\Models\Expense;
use Illuminate\Database\Seeder;

class TrackerSeeder extends Seeder
{
    /**
     * Seeds the 15 rows from the original spreadsheet (total = 28,585).
     * Safe to re-run: rows are matched on description + amount.
     */
    public function run(): void
    {
        $categories = [
            'উপহার', 'পোশাক', 'কসমেটিক', 'বই', 'ব্যাংক', 'ইলেকট্রনিক্স',
            'ভ্রমণ', 'ধর্মীয়', 'খাবার', 'অন্যান্য', 'বিল', 'ভাড়া',
            'চিকিৎসা', 'ফার্নিচার', 'গহনা',
        ];

        foreach ($categories as $i => $name) {
            Category::firstOrCreate(['name' => $name], ['sort_order' => $i + 1]);
        }

        $rows = [
            ['উপহার',        'ঈদ সালামি',                          'Cash',   null,                    5000],
            ['পোশাক',        'বোরখা',                              'Cash',   null,                    3000],
            ['কসমেটিক',      'কসমেটিক',                            'Cash',   null,                    1300],
            ['বই',           'বই ও অন্যান্য',                       'Cash',   null,                    2500],
            ['ব্যাংক',        'ব্যাংক অ্যাকাউন্ট ওপেন',              'Cash',   '100+400+60',            560],
            ['ইলেকট্রনিক্স',  'মোবাইল রিপেয়ার',                     'Cash',   null,                    1500],
            ['ভ্রমণ',         'শ্বশুরবাড়িতে আসা-যাওয়ার খরচ',        'Cash',   '4000+4000',             8000],
            ['পোশাক',        'কাপড় সেলাই',                         'Cash',   null,                    1300],
            ['ধর্মীয়',        'নামাজের হিজাব',                      'Cash',   null,                    600],
            ['পোশাক',        'মোজা',                                'Cash',   null,                    475],
            ['খাবার',        'লাহাম কিচেন',                         'Cash',   '580+420',               1000],
            ['অন্যান্য',      'আলমাজ',                              'Cash',   '1600',                  1600],
            ['বিল',          'মোবাইল বিল',                          'bKash',  '150+50+50+50+50',       350],
            ['ভাড়া',         'শ্বশুরবাড়িতে আসা-যাওয়ার ভাড়া',      'Cash',   '400+400',               800],
            ['ভাড়া',         'গাড়ি ভাড়া',                          'Cash',   null,                    600],
        ];

        foreach ($rows as $i => [$category, $description, $method, $remark, $amount]) {
            Expense::firstOrCreate(
                ['description' => $description, 'amount' => $amount],
                [
                    'expense_date' => null,
                    'category_id' => Category::where('name', $category)->value('id'),
                    'payment_method' => $method,
                    'remark' => $remark,
                    'sort_order' => $i + 1,
                ]
            );
        }
    }
}
