<?php

namespace Database\Seeders;

use App\Models\Category;
use App\Models\Post;
use App\Models\Tag;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;

class BlogSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // 创建管理员用户
        $admin = User::firstOrCreate(
            ['email' => 'admin@example.com'],
            [
                'name' => 'Admin',
                'password' => Hash::make('password'),
            ]
        );

        // 创建分类
        $categories = [
            ['name' => '生活随笔', 'slug' => 'life', 'description' => '记录生活中的点滴感悟', 'sort_order' => 1],
            ['name' => '旅行日记', 'slug' => 'travel', 'description' => '探索世界的每一个角落', 'sort_order' => 2],
            ['name' => '美食探店', 'slug' => 'food', 'description' => '寻找城市中的美味', 'sort_order' => 3],
            ['name' => '穿搭分享', 'slug' => 'fashion', 'description' => '日常穿搭灵感', 'sort_order' => 4],
            ['name' => '摄影作品', 'slug' => 'photography', 'description' => '用镜头记录美好', 'sort_order' => 5],
            ['name' => '读书笔记', 'slug' => 'reading', 'description' => '阅读与思考', 'sort_order' => 6],
        ];

        foreach ($categories as $categoryData) {
            Category::firstOrCreate(['slug' => $categoryData['slug']], $categoryData);
        }

        // 创建标签
        $tags = [
            ['name' => '日常', 'slug' => 'daily', 'color' => '#6366f1'],
            ['name' => '推荐', 'slug' => 'recommend', 'color' => '#ec4899'],
            ['name' => '种草', 'slug' => 'wishlist', 'color' => '#22c55e'],
            ['name' => '打卡', 'slug' => 'check-in', 'color' => '#f59e0b'],
            ['name' => '治愈', 'slug' => 'healing', 'color' => '#14b8a6'],
            ['name' => '灵感', 'slug' => 'inspiration', 'color' => '#8b5cf6'],
            ['name' => '极简', 'slug' => 'minimal', 'color' => '#64748b'],
            ['name' => '氛围感', 'slug' => 'aesthetic', 'color' => '#d946ef'],
            ['name' => '干货', 'slug' => 'tips', 'color' => '#0ea5e9'],
            ['name' => '宝藏', 'slug' => 'treasure', 'color' => '#f43f5e'],
        ];

        foreach ($tags as $tagData) {
            Tag::firstOrCreate(['slug' => $tagData['slug']], $tagData);
        }

        $allCategories = Category::all();
        $allTags = Tag::all();

        // 创建示例文章
        $posts = [
            [
                'title' => '周末的咖啡时光 ☕',
                'slug' => 'weekend-coffee-time',
                'excerpt' => '在繁忙的生活中，给自己一个慢下来的理由。一杯咖啡，一本书，享受属于自己的周末时光。',
                'content' => '<p>周末的早晨，阳光透过窗帘洒进房间，我喜欢这样慵懒地醒来。</p><p>不急不慢地准备一杯手冲咖啡，看着咖啡粉在热水中绽放，香气渐渐弥漫整个房间。这大概就是生活中最简单的幸福吧。</p><h2>关于这家咖啡店</h2><p>最近发现了一家藏在巷子里的小店，装修简约却很有格调。老板是个很有趣的人，每次去都会聊上几句。</p><blockquote><p>「生活不止眼前的苟且，还有诗和远方。」</p></blockquote><p>希望每个人都能找到属于自己的小确幸。</p>',
                'is_featured' => true,
            ],
            [
                'title' => '探索城市的隐藏角落 🏙️',
                'slug' => 'explore-hidden-city',
                'excerpt' => '在熟悉的城市中，总有一些角落等待被发现。这次我用一天的时间，探索了几个从未去过的地方。',
                'content' => '<p>生活在一个城市久了，总觉得已经把每个角落都走遍了。但其实，只要换一个视角，就能发现很多之前忽略的美好。</p><h2>老城区的午后</h2><p>老城区的街道总有一种特别的气息，斑驳的墙面诉说着岁月的故事。</p><p>偶遇一家开了30年的老店，老板娘热情地介绍着店里的招牌。原来，最美的风景一直就在身边。</p><h3>推荐路线</h3><ul><li>早上：从老城区的早餐店开始</li><li>中午：漫步胡同，感受生活气息</li><li>下午：找一家安静的咖啡馆坐坐</li></ul>',
                'is_featured' => true,
            ],
            [
                'title' => '今日穿搭分享 | 极简风 👗',
                'slug' => 'outfit-minimal-style',
                'excerpt' => '分享一套日常通勤穿搭，舒适又不失精致。极简主义的魅力在于less is more。',
                'content' => '<p>今天分享一套我最近很喜欢的穿搭，适合日常通勤，也适合周末约会。</p><h2>单品分享</h2><p>上衣选择了一件基础款的白色T恤，百搭又显气质。下装是一条高腰阔腿裤，拉长腿部线条。</p><p>配饰上我选择了简约的金色项链和耳环，点缀整体造型。</p><blockquote><p>「穿衣服要舒服，更要有自己的风格。」</p></blockquote><h3>搭配tips</h3><ul><li>基础款单品要注重质感</li><li>配色尽量控制在三种以内</li><li>配饰是点睛之笔</li></ul>',
                'is_featured' => true,
            ],
            [
                'title' => '居家改造计划 | 打造温馨小窝 🏠',
                'slug' => 'home-renovation-plan',
                'excerpt' => '一直想改造一下自己的房间，终于动手了！分享一些居家改造的心得。',
                'content' => '<p>租房多年，一直觉得家只是一个睡觉的地方。但最近开始意识到，家应该是一个让人放松的空间。</p><h2>改造思路</h2><p>首先是整理收纳，把不需要的东西都断舍离。然后添置了一些温馨的装饰品，比如香薰蜡烛、绿植、温暖的灯光。</p><p>改造后的房间真的让人心情好很多！</p><h3>好物推荐</h3><ul><li>无火香薰：提升空间氛围</li><li>暖光台灯：营造温馨感</li><li>收纳盒：保持整洁</li></ul>',
                'is_featured' => false,
            ],
            [
                'title' => '读书笔记 | 《被讨厌的勇气》📚',
                'slug' => 'reading-notes-courage',
                'excerpt' => '最近读完了这本书，对阿德勒心理学有了新的认识。分享一些读后感。',
                'content' => '<p>这本书用对话的形式，讲述了阿德勒心理学的核心观点。读完后，对很多事情有了新的看法。</p><h2>核心观点</h2><p>书中提到，我们的人生是由自己选择的，不应该被过去所束缚。每个人都有改变的能力。</p><blockquote><p>「人生没有意义，生命的意义是你自己赋予的。」</p></blockquote><h3>读后感</h3><p>读完这本书，最大的收获是学会了「课题分离」。每个人都应该专注于自己的课题，不要过多干涉别人的课题。</p>',
                'is_featured' => false,
            ],
            [
                'title' => '美食日记 | 自制抹茶提拉米苏 🍰',
                'slug' => 'food-matcha-tiramisu',
                'excerpt' => '周末尝试做了抹茶提拉米苏，没想到意外的成功！分享食谱和制作过程。',
                'content' => '<p>一直很喜欢抹茶口味的甜品，这次尝试自己动手做提拉米苏，效果超出预期！</p><h2>食材准备</h2><p>马斯卡彭芝士、抹茶粉、手指饼干、鲜奶油、蛋黄、糖粉等。</p><h2>制作步骤</h2><p>1. 蛋黄加糖隔水加热打发<br>2. 马斯卡彭芝士打软后混合蛋黄糊<br>3. 手指饼干蘸抹茶液铺底<br>4. 铺上芝士糊，重复几层<br>5. 冷藏4小时以上</p><p>自己做的甜品就是不一样，满满的成就感！</p>',
                'is_featured' => false,
            ],
            [
                'title' => '春日踏青 | 感受大自然的美好 🌸',
                'slug' => 'spring-outing-nature',
                'excerpt' => '趁着春光正好，来一场说走就走的踏青之旅。花海、蓝天、微风，一切都刚刚好。',
                'content' => '<p>等了一个冬天，终于迎来了春暖花开的季节。约上三五好友，去郊外感受大自然的魅力。</p><h2>目的地</h2><p>这次选择了城郊的一个花海公园，樱花和油菜花开得正盛。</p><p>阳光洒在身上，暖暖的，让人忍不住放慢脚步，好好感受这一刻的美好。</p><blockquote><p>「春天就是要出去走走，感受生命的力量。」</p></blockquote><h3>拍照tips</h3><ul><li>选择早上或傍晚的光线</li><li>穿浅色衣服更出片</li><li>善用前景构图</li></ul>',
                'is_featured' => false,
            ],
            [
                'title' => '健身打卡 | 坚持的力量 💪',
                'slug' => 'fitness-check-in',
                'excerpt' => '健身一个月的变化分享。虽然过程很辛苦，但看到自己的进步，一切都值得。',
                'content' => '<p>一个月前开始认真健身，从最开始的不适应到现在慢慢形成习惯，收获了很多。</p><h2>我的训练计划</h2><p>每周训练4-5次，有氧和力量交替进行。刚开始的时候真的很累，但坚持下来后，身体素质明显提高了。</p><h3>一些建议</h3><ul><li>制定合理的计划，循序渐进</li><li>饮食要配合，保证蛋白质摄入</li><li>休息同样重要，不要过度训练</li><li>找到自己喜欢的运动方式</li></ul><p>希望这篇分享能给想开始健身的朋友一些动力！</p>',
                'is_featured' => false,
            ],
        ];

        foreach ($posts as $index => $postData) {
            $post = Post::firstOrCreate(
                ['slug' => $postData['slug']],
                array_merge($postData, [
                    'user_id' => $admin->id,
                    'category_id' => $allCategories->random()->id,
                    'status' => 'published',
                    'published_at' => now()->subDays(rand(1, 30)),
                    'views_count' => rand(100, 3000),
                    'likes_count' => rand(10, 300),
                ])
            );

            // 随机关联2-4个标签
            $post->tags()->sync($allTags->random(rand(2, 4))->pluck('id'));
        }

        $this->command->info('Blog seeder completed successfully!');
        $this->command->info('Admin login: admin@example.com / password');
    }
}

