<?php

namespace Kylin\LawCase\Policies;

use App\Models\User;
use Kylin\LawCase\Models\Schedule;

/**
 * 日程权限策略
 */
class SchedulePolicy
{
    /**
     * 查看日程 - 管理员/合伙人可查看所有，其他仅可查看自己的日程
     */
    public function view(User $user, Schedule $schedule): bool
    {
        if ($user->hasRole('super_admin') || $user->hasRole('partner')) {
            return true;
        }

        return $schedule->user_id === $user->id;
    }

    /**
     * 更新日程 - 仅创建者或管理员
     */
    public function update(User $user, Schedule $schedule): bool
    {
        if ($user->hasRole('super_admin')) {
            return true;
        }

        return $schedule->user_id === $user->id;
    }

    /**
     * 删除日程 - 仅创建者或管理员
     */
    public function delete(User $user, Schedule $schedule): bool
    {
        if ($user->hasRole('super_admin')) {
            return true;
        }

        return $schedule->user_id === $user->id;
    }
}
