<?php

declare(strict_types=1);

namespace App\Scolarite\Domain\Repository;

use App\Scolarite\Domain\Model\Homework\HomeworkId;
use App\Scolarite\Domain\Model\Homework\HomeworkRuleException;
use App\Shared\Domain\Tenant\TenantId;

interface HomeworkRuleExceptionRepository
{
    public function save(HomeworkRuleException $exception): void;

    /** @return array<HomeworkRuleException> */
    public function findByHomework(HomeworkId $homeworkId, TenantId $tenantId): array;

    /** @return array<HomeworkRuleException> */
    public function findByTenant(TenantId $tenantId): array;

    /**
     * Returns the set of homework IDs that have at least one exception.
     *
     * @return array<string> Homework IDs as strings
     */
    public function homeworkIdsWithExceptions(TenantId $tenantId): array;
}
