<?php

namespace Src\Modules\Auth\Interfaces\Application\Admin;

use Src\Common\Interfaces\Application\IBaseDomain;
use Src\Modules\Auth\Interfaces\Dto\Admin\IFactory as IAdminDtoFactory;
use Src\Modules\Auth\Interfaces\Infrastructure\PersistLayer\IAdminsLayer;
use Src\Modules\Auth\Interfaces\Infrastructure\Storage\IAdminsStorage;

interface IDomain extends IBaseDomain
{
    
    public function setValidator(IValidator $validator): void;
    public function setAdminDtoFactory(IAdminDtoFactory $factory): void;
    public function setAdminsLayer(IAdminsLayer $layer): void;
    public function setAdminsStorage(IAdminsStorage $storage): void;
    public function insert(array $data): bool;
    public function update(array $data): bool;
    public function login(array $data):bool;
    public function delete(string $id): bool;
}