xref: /webtrees/app/Statistics/Repository/Interfaces/LatestUserRepositoryInterface.php (revision 202c018b592d5a516e4a465dc6dc515f3be37399)
1<?php
2
3/**
4 * webtrees: online genealogy
5 * Copyright (C) 2023 webtrees development team
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17
18declare(strict_types=1);
19
20namespace Fisharebest\Webtrees\Statistics\Repository\Interfaces;
21
22/**
23 * A repository providing methods for latest user related statistics.
24 */
25interface LatestUserRepositoryInterface
26{
27    /**
28     * Get the newest registered user's ID.
29     *
30     * @return string
31     */
32    public function latestUserId(): string;
33
34    /**
35     * Get the newest registered user's username.
36     *
37     * @return string
38     */
39    public function latestUserName(): string;
40
41    /**
42     * Get the newest registered user's real name.
43     *
44     * @return string
45     */
46    public function latestUserFullName(): string;
47
48    /**
49     * Get the date of the newest user registration.
50     *
51     * @param string|null $format
52     *
53     * @return string
54     */
55    public function latestUserRegDate(string|null $format = null): string;
56
57    /**
58     * Find the timestamp of the latest user to register.
59     *
60     * @param string|null $format
61     *
62     * @return string
63     */
64    public function latestUserRegTime(string|null $format = null): string;
65
66    /**
67     * Is the most recently registered user logged in right now?
68     *
69     * @param string|null $yes
70     * @param string|null $no
71     *
72     * @return string
73     */
74    public function latestUserLoggedin(string|null $yes = null, string|null $no = null): string;
75}
76