<?php

namespace Hura8\Interfaces;

interface iEntityController
{
    public function getListByIds(array $list_id, array $condition = array()): array;

    /**
     * @description utility to inspect the actual filters which will be used in getList by Controller
     * @param array $raw_filter_condition
     * @return string[]
     */
    public function getActualFilterCondition(array $raw_filter_condition) : array;

    /**
     * @description utility to inspect the actual filters which will be used in getList by Model
     * @param array $raw_filter_condition
     * @return string[]
     */
    public function getModelFilterCondition(array $raw_filter_condition) : array;

    public function getList(array $condition): array;
    public function getTotal(array $condition): int;
    public function getInfo($id): ?array;
}
