<?php

namespace App\Repository\TimeLog;

use App\Entity\TimeLog;
use App\Service\DataGrid\DataGridInterface;

interface TimeLogRepositoryInterface
{
    /**
     * @param int $id
     *
     * @return TimeLog
     */
    public function findById(int $id): ?TimeLog;

    /**
     * @param TimeLog $timeLog
     */
    public function save(TimeLog $timeLog): void;

    /**
     * @param TimeLog $timeLog
     */
    public function delete(TimeLog $timeLog): void;

    public function aggregateByGrid(DataGridInterface $dataGrid): array;

    public function getSubjects(): array;

    public function getFirstDate(): ?string;
}
