<?php

declare(strict_types=1);

namespace ApiModel\Domain\Repository;

interface CompanyRepositoryInterface
{
    public function findById(string $id): ?array;

    public function findByTaxId(string $taxId): ?array;

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

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

    public function insert(
        string $id,
        string $legalName,
        ?string $tradeName,
        string $taxId,
        string $baseCurrency,
        ?string $email,
        ?string $phone,
        ?string $address
    ): void;

    public function update(
        string $id,
        string $legalName,
        ?string $tradeName,
        string $taxId,
        string $baseCurrency,
        ?string $email,
        ?string $phone,
        ?string $address,
        bool $isActive
    ): void;
}
