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