<?php

namespace App\Modules\ModuleNotificationParam\Infraestructure;

use App\Modules\ModuleNotificationParam\Domain\ModuleNotificationParamRepository;
use App\Modules\ModuleNotificationParam\Domain\InsertModuleNotificationParam;
use App\Modules\Shared\Infraestructure\Requester;

class MysqlModuleNotificationParamRepository implements ModuleNotificationParamRepository
{

    // public function find(IdHtlCamp $idHtlCamp, string $query, string $action) {
    //     return Requester::requestSelect(
    //         'CALL sp_module_notification_param_list(?,?,?,@sts,@cod,@msg)',
    //         [
    //             $idHtlCamp->getValue(),
    //             $query,
    //             $action
    //         ]
    //     );
    // }

    // public function index(IdModuleNotificationParam $id) {
    //     return Requester::requestSelect(
    //         'CALL sp_module_notification_param_index(?,@sts,@cod,@msg)',
    //         [
    //             $id->getValue(),
    //         ]
    //     );
    // }

    public function insert(InsertModuleNotificationParam $value)
    {
        return Requester::requestInsert(
            'CALL sp_module_notification_param_insert(?,?,?,@sts,@cod,@msg,@id)',
            [
                $value->idModuleNotification()->value(),
                $value->key()->value(),
                $value->value()->value()
            ]
        );
    }

    // public function update(ModuleNotificationParam $value) {
    //     return Requester::requestUpdate(
    //         'CALL sp_module_notification_param_update(?,?,?,@sts,@cod,@msg)',
    //         [
    //             $value->getId()->getValue(),
    //             $value->getNumber()->getValue(),
    //             $value->getStatus()->getValue(),
    //         ]
    //     );
    // }

    // public function delete(IdModuleNotificationParam $id) {
    //     return Requester::requestUpdate(
    //         'CALL sp_module_notification_param_delete(?,@sts,@cod,@msg)',
    //         [
    //             $id->getValue(),
    //         ]
    //     );
    // }
}
