<?php

declare(strict_types=1);

namespace ApiModel\Domain\Repository;

interface PageRepositoryInterface
{
    /** @return array<string, mixed>|null */
    public function findById(string $id): ?array;

    /** @return array<string, mixed>|null */
    public function findByPath(string $path): ?array;

    public function insert(string $id, string $moduleId, string $nameEs, string $nameEn, string $path, ?string $icon, int $orderIndex): void;

    /** @return list<array<string, mixed>> */
    public function listAll(): array;

    /** @return list<array<string, mixed>> */
    public function listActiveByModule(string $moduleId): array;

    public function update(string $id, string $moduleId, string $nameEs, string $nameEn, string $path, ?string $icon, int $orderIndex, bool $isActive): void;

    public function delete(string $id): void;
}
