<?php

namespace App\GraphQL\Mutations;

use App\Models\Payment;
use App\Models\StudentAbsence;

class CreateAbsencePayment
{
    /**
     * @param null $_
     * @param array<string, mixed> $args
     * @throws \Exception
     */
    public function __invoke($_, array $args)
    {
        if (!$args || !$args['lectures']) return abort(404, 'Please Enter Valid Information');
        $absences = StudentAbsence::query()
            ->whereIn('id', $args['lectures']);
        return Payment::payAbsences($absences->get(), $absences->first(), $args['amount'], @$args['allow_makeup'] ?? false);
    }
}
