Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
1 / 1
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3declare(strict_types=1);
4
5/** @license For full copyright and license information, please see the LICENSE.md file. */
6
7namespace App\Modules\Tax\Domain\Repository;
8
9defined('AMMONLY_APP') || exit('Direct script access is forbidden.');
10
11use App\Modules\Tax\Domain\Model\TaxGroup;
12
13/**
14 * Repository interface for managing TaxGroup aggregates.
15 */
16interface TaxGroupRepositoryInterface
17{
18    /**
19     * Find TaxGroup by primary key ID.
20     */
21    public function findById(int $id): ?TaxGroup;
22
23    /**
24     * Find TaxGroup by unique group code.
25     */
26    public function findByCode(string $code): ?TaxGroup;
27
28    /**
29     * List all tax groups.
30     *
31     * @param array<string, mixed> $filters
32     * @return TaxGroup[]
33     */
34    public function findAll(array $filters = []): array;
35
36    /**
37     * Save TaxGroup and its items.
38     */
39    public function save(TaxGroup $taxGroup): TaxGroup;
40
41    /**
42     * Delete TaxGroup by ID.
43     */
44    public function delete(int $id): bool;
45}