<?php

declare(strict_types=1);

namespace App\Contracts\Repositories;

use App\Models\OwnerPaymentAccount;
use Illuminate\Support\Collection;

interface OwnerPaymentAccountRepositoryInterface
{
    public function create(array $data): OwnerPaymentAccount;

    public function update(int $id, array $data): OwnerPaymentAccount;

    public function delete(int $id): bool;

    public function find(int $id): ?OwnerPaymentAccount;

    public function getForOwner(int $ownerId): Collection;

    public function getPrimaryForOwner(int $ownerId): ?OwnerPaymentAccount;

    public function unsetPrimaryForOwner(int $ownerId): void;
}
