<?php
namespace App\Repositories\Interfaces;

use Illuminate\Support\Collection;

interface ProfessionalRepositoryInterface extends BaseRepositoryInterface {
    
    /**
     * @return Collection
     */
    public function lockForBooking(int $id): void;

    public function getApplicationList(): Collection;

    /**
     * @param array $filters
     * 
     * @return array
     */
    public function searchProfessional(array $filters): array;

    /**
     * @param string $professionalId
     * 
     * @return [type]
     */
    public function viewProfessionalDetails(string $professionalId);

    public function getAvailableForInstantBooking(int $professionId, ?int $specialtyId = null, ?int $excludeUserId = null): Collection;
}
