<?php

namespace App\Service\Campaign\Report;

use App\Entity\Campaign\Report;
use App\Entity\Campaign\Report\Element;

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

    /**
     * @param Element $element
     */
    public function save(Element $element): void;

    /**
     * @param Element $element
     */
    public function delete(Element $element): void;

    public function getSubjects();

    public function getSubjectIds();

    public function getReportElements(Report $report);
}
