<?php

declare(strict_types=1);

namespace App\Administration\Domain\Repository;

use App\Administration\Domain\Model\GradingConfiguration\SchoolGradingConfiguration;
use App\Administration\Domain\Model\GradingConfiguration\SchoolGradingConfigurationId;
use App\Administration\Domain\Model\SchoolClass\AcademicYearId;
use App\Administration\Domain\Model\SchoolClass\SchoolId;
use App\Shared\Domain\Tenant\TenantId;

interface GradingConfigurationRepository
{
    public function save(SchoolGradingConfiguration $configuration): void;

    public function findBySchoolAndYear(
        TenantId $tenantId,
        SchoolId $schoolId,
        AcademicYearId $academicYearId,
    ): ?SchoolGradingConfiguration;

    public function get(SchoolGradingConfigurationId $id, TenantId $tenantId): SchoolGradingConfiguration;
}
