<?php

namespace goodboyalex\php_components_pack\interfaces;

/**
 * Интерфейс поддержки моделей и классов, реализующих хранение свойств в SQL базе данных.
 *
 * @author Александр Бабаев
 * @package freecms
 * @version 0.1
 * @since 0.1
 */
interface IStoredAtSQL
{
    /**
     * Вывод параметров добавления/обновления данных в базу данных.
     *
     * @param bool $withId Нужно ли добавлять Id в массив
     *
     * @return array Массив параметров
     */
    public function ToSQL (bool $withId = true): array;

    /**
     * Преобразование данных из базы данных в модель, класс.
     *
     * @param array $sqlData Данные из базы данных
     *
     * @return self Класс модели с заполненными данными из базы данных
     */
    public function FromSQL (array $sqlData): self;
}