<?php

declare(strict_types=1);

namespace Kylin\Hr;

use Illuminate\Support\ServiceProvider;

/**
 * 人力资源系统服务提供者
 *
 * 提供企业 HR 管理核心功能：
 *  - 员工管理（Employee/Department/Position）
 *  - 招聘管理（Resume/Interview/RecruitmentPlan）
 *  - 考勤管理（Attendance）
 *  - 薪酬管理（SalarySlip/SalaryService）
 *  - 合同管理（Contract）
 *  - 请假加班（LeaveRequest/OvertimeRequest）
 *  - 绩效管理（PerformancePlan）
 *  - 社保管理（SocialInsurance）
 */
class HrServiceProvider extends ServiceProvider
{
    /**
     * 注册服务
     */
    public function register(): void
    {
        $this->mergeConfigFrom(
            __DIR__.'/../config/kylin-hr.php', 'kylin-hr'
        );
    }

    /**
     * 启动服务
     */
    public function boot(): void
    {
        // 发布配置
        $this->publishes([
            __DIR__.'/../config/kylin-hr.php' => config_path('kylin-hr.php'),
        ], 'kylin-hr-config');

        // 发布迁移
        $this->publishes([
            __DIR__.'/../database/migrations/' => database_path('migrations'),
        ], 'kylin-hr-migrations');

        // 加载迁移
        $this->loadMigrationsFrom(__DIR__.'/../database/migrations');

        // 加载路由
        $this->loadRoutesFrom(__DIR__.'/../routes/api.php');
    }
}
