<?php

declare(strict_types=1);

namespace App\Repositories;

final class ModeReglementRepository extends BaseRepository
{
    public function all(): array
    {
        return $this->fetchAll(
            "SELECT *
             FROM modes_reglement
             ORDER BY ordre_affichage ASC"
        );
    }

    public function allActive(): array
    {
        return $this->fetchAll(
            "SELECT *
             FROM modes_reglement
             WHERE actif=1
             ORDER BY ordre_affichage ASC"
        );
    }

    public function create(
        string $libelle,
        int $comptant,
        int $delai,
        int $ordre
    ): void {

        $this->execute(

            "INSERT INTO modes_reglement
            (libelle,comptant,delai_jours,ordre_affichage,actif)

            VALUES

            (:libelle,:comptant,:delai,:ordre,1)",

            [

                'libelle'=>$libelle,
                'comptant'=>$comptant,
                'delai'=>$delai,
                'ordre'=>$ordre

            ]
        );
    }

    public function update(
        int $id,
        string $libelle,
        int $comptant,
        int $delai,
        int $ordre,
        int $actif
    ): void {

        $this->execute(

            "UPDATE modes_reglement

            SET

            libelle=:libelle,

            comptant=:comptant,

            delai_jours=:delai,

            ordre_affichage=:ordre,

            actif=:actif

            WHERE id=:id",

            [

                'id'=>$id,
                'libelle'=>$libelle,
                'comptant'=>$comptant,
                'delai'=>$delai,
                'ordre'=>$ordre,
                'actif'=>$actif

            ]
        );
    }

    public function deactivate(int $id): void
    {
        $this->execute(

            "UPDATE modes_reglement
             SET actif=0
             WHERE id=:id",

            ['id'=>$id]

        );
    }
}