<?php
namespace Misuzu\Users;

use DateTimeImmutable;
use Index\Data\IDbConnection;

final class Users {
    private IDbConnection $dbConn;

    private array $cached = [];

    public function __construct(IDbConnection $dbConn) {
        $this->dbConn = $dbConn;
    }

    public function getById(string $userId): User {
        //
    }

    public function getByName(string $userName): User {
        //
    }

    public function getByMailAddress(string $mailAddress): User {
        //
    }

    public function getByNameOrMailAddress(string $userNameOrMailAddress): User {
        //
    }

    public function getByIdOrName(string $userIdOrName): User {
        //
    }

    public function getByBirthDate(DateTimeImmutable $dateTime): array {
        //
    }

    public function getByAll(bool $includeDeleted = false, ?Pagination $pagination = null): array {
        //
    }
}
