<?php

namespace MintyPHP\Repository\Org;

/** Contract for querying user-department membership and per-department user counts. */
interface UserDepartmentRepositoryInterface
{
    public function listDepartmentIdsByUserId(int $userId): array;

    public function replaceForUser(int $userId, array $departmentIds): bool;

    public function removeInvalidForDepartment(int $departmentId): int;

    public function countUsersByDepartmentIds(array $departmentIds): array;

    public function countActiveUsersByDepartmentIds(array $departmentIds): array;
}
