xref: /webtrees/app/Statistics/Repository/Interfaces/FamilyDatesRepositoryInterface.php (revision 78606cf427772fbdc5222ff607ee23f43078f94b)
1<?php
2
3/**
4 * webtrees: online genealogy
5 * Copyright (C) 2022 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 family dates related statistics (birth, death, marriage, divorce).
24 */
25interface FamilyDatesRepositoryInterface
26{
27    /**
28     * Find the earliest birth.
29     *
30     * @return string
31     */
32    public function firstBirth(): string;
33
34    /**
35     * Find the earliest birth year.
36     *
37     * @return string
38     */
39    public function firstBirthYear(): string;
40
41    /**
42     * Find the name of the earliest birth.
43     *
44     * @return string
45     */
46    public function firstBirthName(): string;
47
48    /**
49     * Find the earliest birth place.
50     *
51     * @return string
52     */
53    public function firstBirthPlace(): string;
54
55    /**
56     * Find the latest birth.
57     *
58     * @return string
59     */
60    public function lastBirth(): string;
61
62    /**
63     * Find the latest birth year.
64     *
65     * @return string
66     */
67    public function lastBirthYear(): string;
68
69    /**
70     * Find the latest birth name.
71     *
72     * @return string
73     */
74    public function lastBirthName(): string;
75
76    /**
77     * Find the latest birth place.
78     *
79     * @return string
80     */
81    public function lastBirthPlace(): string;
82
83    /**
84     * Find the earliest death.
85     *
86     * @return string
87     */
88    public function firstDeath(): string;
89
90    /**
91     * Find the earliest death year.
92     *
93     * @return string
94     */
95    public function firstDeathYear(): string;
96
97    /**
98     * Find the earliest death name.
99     *
100     * @return string
101     */
102    public function firstDeathName(): string;
103
104    /**
105     * Find the earliest death place.
106     *
107     * @return string
108     */
109    public function firstDeathPlace(): string;
110
111    /**
112     * Find the latest death.
113     *
114     * @return string
115     */
116    public function lastDeath(): string;
117
118    /**
119     * Find the latest death year.
120     *
121     * @return string
122     */
123    public function lastDeathYear(): string;
124
125    /**
126     * Find the latest death name.
127     *
128     * @return string
129     */
130    public function lastDeathName(): string;
131
132    /**
133     * Find the place of the latest death.
134     *
135     * @return string
136     */
137    public function lastDeathPlace(): string;
138
139    /**
140     * Find the earliest marriage.
141     *
142     * @return string
143     */
144    public function firstMarriage(): string;
145
146    /**
147     * Find the year of the earliest marriage.
148     *
149     * @return string
150     */
151    public function firstMarriageYear(): string;
152
153    /**
154     * Find the names of spouses of the earliest marriage.
155     *
156     * @return string
157     */
158    public function firstMarriageName(): string;
159
160    /**
161     * Find the place of the earliest marriage.
162     *
163     * @return string
164     */
165    public function firstMarriagePlace(): string;
166
167    /**
168     * Find the latest marriage.
169     *
170     * @return string
171     */
172    public function lastMarriage(): string;
173
174    /**
175     * Find the year of the latest marriage.
176     *
177     * @return string
178     */
179    public function lastMarriageYear(): string;
180
181    /**
182     * Find the names of spouses of the latest marriage.
183     *
184     * @return string
185     */
186    public function lastMarriageName(): string;
187
188    /**
189     * Find the location of the latest marriage.
190     *
191     * @return string
192     */
193    public function lastMarriagePlace(): string;
194
195    /**
196     * Find the earliest divorce.
197     *
198     * @return string
199     */
200    public function firstDivorce(): string;
201
202    /**
203     * Find the year of the earliest divorce.
204     *
205     * @return string
206     */
207    public function firstDivorceYear(): string;
208
209    /**
210     * Find the names of individuals in the earliest divorce.
211     *
212     * @return string
213     */
214    public function firstDivorceName(): string;
215
216    /**
217     * Find the location of the earliest divorce.
218     *
219     * @return string
220     */
221    public function firstDivorcePlace(): string;
222
223    /**
224     * Find the latest divorce.
225     *
226     * @return string
227     */
228    public function lastDivorce(): string;
229
230    /**
231     * Find the year of the latest divorce.
232     *
233     * @return string
234     */
235    public function lastDivorceYear(): string;
236
237    /**
238     * Find the names of the individuals in the latest divorce.
239     *
240     * @return string
241     */
242    public function lastDivorceName(): string;
243
244    /**
245     * Find the location of the latest divorce.
246     *
247     * @return string
248     */
249    public function lastDivorcePlace(): string;
250}
251