<?php

namespace App\Modules\Core\Contracts;

use Illuminate\Support\Collection;

interface CoreServiceInterface
{
    /**
     * Get multiple users by their IDs.
     * 
     * @param array $ids
     * @return Collection
     */
    public function getUsersByIds(array $ids): Collection;

    /**
     * Get a specific user by ID.
     * 
     * @param int $id
     * @return object|null
     */
    public function getUser(int $id): ?object;

    /**
     * Get all users.
     * 
     * @return Collection
     */
    public function getAllUsers(): Collection;

    /**
     * Get the system user or create one if not exists.
     * 
     * @return object
     */
    public function ensureSystemUserExists();
}
