<?php

declare(strict_types=1);

namespace mirzaev\surikovlib\models;

use pdo;
use exception;

/**
 * Модель книг
 *
 * @package mirzaev\surikovlib\models
 * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
 */
final class books_model extends core
{
    public static function read(array $where = [], int $limit = 1, int $page = 1): array
    {
        // Инициализация строки поиска
        $row = '';

        // Инициализация параметров запроса
        $params = [];

        foreach ($where as $parameter => $value) {
            // Перебор параметров поиска

            // Запись функции
            if(empty($row)) $row = 'WHERE ';

            // Запись в строку поиска
            $row .= "`$parameter` = :$parameter";

            $params[$parameter] = $value;
        }

        // Инициализация страницы
        $page = $limit * --$page;

        // Инициализация запроса
        $request = static::$db->prepare("SELECT * FROM `books` $row LIMIT $page, $limit");

        // Отправка запроса
        $request->execute($params);

        return (array) $request->fetchAll(pdo::FETCH_ASSOC);
    }
}
