<?php

namespace App\Policies;

use App\Models\Admin;
use App\Models\Registrar;
use Illuminate\Auth\Access\HandlesAuthorization;

class RegistrarPolicy
{
    use HandlesAuthorization;

    /**
     * Kullanıcının registrar'ları listeleyip listeleyemeyeceğini belirler.
     *
     * @return bool
     */
    public function viewAny(Admin $admin)
    {
        return $admin->hasPermissionTo('view registrars');
    }

    /**
     * Kullanıcının belirli bir registrar'ı görüntüleyip görüntüleyemeyeceğini belirler.
     *
     * @return bool
     */
    public function view(Admin $admin, Registrar $registrar)
    {
        return $admin->hasPermissionTo('view registrars');
    }

    /**
     * Kullanıcının yeni bir registrar oluşturup oluşturamayacağını belirler.
     *
     * @return bool
     */
    public function create(Admin $admin)
    {
        return $admin->hasPermissionTo('create registrars');
    }

    /**
     * Kullanıcının belirli bir registrar'ı güncelleyip güncelleyemeyeceğini belirler.
     *
     * @return bool
     */
    public function update(Admin $admin, Registrar $registrar)
    {
        return $admin->hasPermissionTo('update registrars');
    }

    /**
     * Kullanıcının bir registrar'ı güncelleyip güncelleyemeyeceğini belirler (genel yetki).
     *
     * @return bool
     */
    public function updateAny(Admin $admin)
    {
        return $admin->hasPermissionTo('update registrars');
    }

    /**
     * Kullanıcının belirli bir registrar'ı silip silemeyeceğini belirler.
     *
     * @return bool
     */
    public function delete(Admin $admin, Registrar $registrar)
    {
        return $admin->hasPermissionTo('delete registrars');
    }

    /**
     * Kullanıcının bir registrar'ı silip silemeyeceğini belirler (genel yetki).
     *
     * @return bool
     */
    public function deleteAny(Admin $admin)
    {
        return $admin->hasPermissionTo('delete registrars');
    }
}
