<?php

declare(strict_types=1);

namespace Kylin\Prompt;

use Illuminate\Support\ServiceProvider;
use Kylin\Prompt\Services\PromptService;

/**
 * AI 提示词服务提供者
 *
 * 提供防沉迷适龄提示语管理功能，支持提示语的
 * 创建、编辑、版本管理和分类管理。
 *
 * 法律合规：
 *  - 《未成年人保护法》第七十五条：适龄提示按年龄分组
 *  - T/CADPA 14-2021：网络游戏适龄提示标准
 *  - 《深度合成服务管理规定》第六条：AI 生成内容需标识
 */
class PromptServiceProvider extends ServiceProvider
{
    public function register(): void
    {
        $this->mergeConfigFrom(__DIR__ . '/../config/kylin-prompt.php', 'kylin-prompt');
        $this->app->singleton(PromptService::class);
    }

    public function boot(): void
    {
        if ($this->app->runningInConsole()) {
            $this->publishes([
                __DIR__ . '/../config/kylin-prompt.php' => config_path('kylin-prompt.php'),
            ], 'kylin-prompt-config');

            $this->publishes([
                __DIR__ . '/../database/migrations/' => database_path('migrations'),
            ], 'kylin-prompt-migrations');

            $this->publishes([
                __DIR__ . '/../database/seeders/' => database_path('seeders'),
            ], 'kylin-prompt-seeders');
        }

        $this->loadMigrationsFrom(__DIR__ . '/../database/migrations');
        $this->loadRoutesFrom(__DIR__ . '/../routes/api.php');
    }
}
