<?php

declare(strict_types=1);

namespace App\Scolarite\Domain\Repository;

use App\Administration\Domain\Model\User\UserId;
use App\Scolarite\Domain\Model\Grade\AppreciationTemplate;
use App\Scolarite\Domain\Model\Grade\AppreciationTemplateId;
use App\Shared\Domain\Tenant\TenantId;

interface AppreciationTemplateRepository
{
    public function save(AppreciationTemplate $template): void;

    public function findById(AppreciationTemplateId $id, TenantId $tenantId): ?AppreciationTemplate;

    /** @return array<AppreciationTemplate> */
    public function findByTeacher(UserId $teacherId, TenantId $tenantId): array;

    public function delete(AppreciationTemplateId $id, TenantId $tenantId): void;
}
