<?php

namespace App\Policies;

use App\Models\FormSubmission;
use App\Models\User;
use Illuminate\Auth\Access\Response;

class FormSubmissionPolicy
{
    public function view(User $user, FormSubmission $submission): bool
    {
        if ($user->isAdmin()) {
            return true;
        }

        return $user->isFiliale()
            && $user->filiale_id === $submission->filiale_id;
    }

    public function update(User $user, FormSubmission $submission): Response|bool
    {
        if (! $user->isFiliale() || $user->filiale_id !== $submission->filiale_id) {
            return Response::deny('Vous ne pouvez pas modifier cette soumission.');
        }

        $submission->loadMissing('form');

        if (! $submission->form->is_active) {
            return Response::deny('Ce formulaire est verrouillé par l\'administrateur. Consultation seule.');
        }

        return true;
    }
}
