1*8add1155SRico Sonntag<?php 2*8add1155SRico Sonntag/** 3*8add1155SRico Sonntag * webtrees: online genealogy 4*8add1155SRico Sonntag * Copyright (C) 2018 webtrees development team 5*8add1155SRico Sonntag * This program is free software: you can redistribute it and/or modify 6*8add1155SRico Sonntag * it under the terms of the GNU General Public License as published by 7*8add1155SRico Sonntag * the Free Software Foundation, either version 3 of the License, or 8*8add1155SRico Sonntag * (at your option) any later version. 9*8add1155SRico Sonntag * This program is distributed in the hope that it will be useful, 10*8add1155SRico Sonntag * but WITHOUT ANY WARRANTY; without even the implied warranty of 11*8add1155SRico Sonntag * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12*8add1155SRico Sonntag * GNU General Public License for more details. 13*8add1155SRico Sonntag * You should have received a copy of the GNU General Public License 14*8add1155SRico Sonntag * along with this program. If not, see <http://www.gnu.org/licenses/>. 15*8add1155SRico Sonntag */ 16*8add1155SRico Sonntagdeclare(strict_types=1); 17*8add1155SRico Sonntag 18*8add1155SRico Sonntagnamespace Fisharebest\Webtrees\Statistics\Repository\Interfaces; 19*8add1155SRico Sonntag 20*8add1155SRico Sonntag/** 21*8add1155SRico Sonntag * A repository providing methods for family dates related statistics (birth, death, marriage, divorce). 22*8add1155SRico Sonntag */ 23*8add1155SRico Sonntaginterface FamilyDatesRepositoryInterface 24*8add1155SRico Sonntag{ 25*8add1155SRico Sonntag /** 26*8add1155SRico Sonntag * Find the earliest birth. 27*8add1155SRico Sonntag * 28*8add1155SRico Sonntag * @return string 29*8add1155SRico Sonntag */ 30*8add1155SRico Sonntag public function firstBirth(): string; 31*8add1155SRico Sonntag 32*8add1155SRico Sonntag /** 33*8add1155SRico Sonntag * Find the earliest birth year. 34*8add1155SRico Sonntag * 35*8add1155SRico Sonntag * @return string 36*8add1155SRico Sonntag */ 37*8add1155SRico Sonntag public function firstBirthYear(): string; 38*8add1155SRico Sonntag 39*8add1155SRico Sonntag /** 40*8add1155SRico Sonntag * Find the name of the earliest birth. 41*8add1155SRico Sonntag * 42*8add1155SRico Sonntag * @return string 43*8add1155SRico Sonntag */ 44*8add1155SRico Sonntag public function firstBirthName(): string; 45*8add1155SRico Sonntag 46*8add1155SRico Sonntag /** 47*8add1155SRico Sonntag * Find the earliest birth place. 48*8add1155SRico Sonntag * 49*8add1155SRico Sonntag * @return string 50*8add1155SRico Sonntag */ 51*8add1155SRico Sonntag public function firstBirthPlace(): string; 52*8add1155SRico Sonntag 53*8add1155SRico Sonntag /** 54*8add1155SRico Sonntag * Find the latest birth. 55*8add1155SRico Sonntag * 56*8add1155SRico Sonntag * @return string 57*8add1155SRico Sonntag */ 58*8add1155SRico Sonntag public function lastBirth(): string; 59*8add1155SRico Sonntag 60*8add1155SRico Sonntag /** 61*8add1155SRico Sonntag * Find the latest birth year. 62*8add1155SRico Sonntag * 63*8add1155SRico Sonntag * @return string 64*8add1155SRico Sonntag */ 65*8add1155SRico Sonntag public function lastBirthYear(): string; 66*8add1155SRico Sonntag 67*8add1155SRico Sonntag /** 68*8add1155SRico Sonntag * Find the latest birth name. 69*8add1155SRico Sonntag * 70*8add1155SRico Sonntag * @return string 71*8add1155SRico Sonntag */ 72*8add1155SRico Sonntag public function lastBirthName(): string; 73*8add1155SRico Sonntag 74*8add1155SRico Sonntag /** 75*8add1155SRico Sonntag * Find the latest birth place. 76*8add1155SRico Sonntag * 77*8add1155SRico Sonntag * @return string 78*8add1155SRico Sonntag */ 79*8add1155SRico Sonntag public function lastBirthPlace(): string; 80*8add1155SRico Sonntag 81*8add1155SRico Sonntag /** 82*8add1155SRico Sonntag * Find the earliest death. 83*8add1155SRico Sonntag * 84*8add1155SRico Sonntag * @return string 85*8add1155SRico Sonntag */ 86*8add1155SRico Sonntag public function firstDeath(): string; 87*8add1155SRico Sonntag 88*8add1155SRico Sonntag /** 89*8add1155SRico Sonntag * Find the earliest death year. 90*8add1155SRico Sonntag * 91*8add1155SRico Sonntag * @return string 92*8add1155SRico Sonntag */ 93*8add1155SRico Sonntag public function firstDeathYear(): string; 94*8add1155SRico Sonntag 95*8add1155SRico Sonntag /** 96*8add1155SRico Sonntag * Find the earliest death name. 97*8add1155SRico Sonntag * 98*8add1155SRico Sonntag * @return string 99*8add1155SRico Sonntag */ 100*8add1155SRico Sonntag public function firstDeathName(): string; 101*8add1155SRico Sonntag 102*8add1155SRico Sonntag /** 103*8add1155SRico Sonntag * Find the earliest death place. 104*8add1155SRico Sonntag * 105*8add1155SRico Sonntag * @return string 106*8add1155SRico Sonntag */ 107*8add1155SRico Sonntag public function firstDeathPlace(): string; 108*8add1155SRico Sonntag 109*8add1155SRico Sonntag /** 110*8add1155SRico Sonntag * Find the latest death. 111*8add1155SRico Sonntag * 112*8add1155SRico Sonntag * @return string 113*8add1155SRico Sonntag */ 114*8add1155SRico Sonntag public function lastDeath(): string; 115*8add1155SRico Sonntag 116*8add1155SRico Sonntag /** 117*8add1155SRico Sonntag * Find the latest death year. 118*8add1155SRico Sonntag * 119*8add1155SRico Sonntag * @return string 120*8add1155SRico Sonntag */ 121*8add1155SRico Sonntag public function lastDeathYear(): string; 122*8add1155SRico Sonntag 123*8add1155SRico Sonntag /** 124*8add1155SRico Sonntag * Find the latest death name. 125*8add1155SRico Sonntag * 126*8add1155SRico Sonntag * @return string 127*8add1155SRico Sonntag */ 128*8add1155SRico Sonntag public function lastDeathName(): string; 129*8add1155SRico Sonntag 130*8add1155SRico Sonntag /** 131*8add1155SRico Sonntag * Find the place of the latest death. 132*8add1155SRico Sonntag * 133*8add1155SRico Sonntag * @return string 134*8add1155SRico Sonntag */ 135*8add1155SRico Sonntag public function lastDeathPlace(): string; 136*8add1155SRico Sonntag 137*8add1155SRico Sonntag /** 138*8add1155SRico Sonntag * Find the earliest marriage. 139*8add1155SRico Sonntag * 140*8add1155SRico Sonntag * @return string 141*8add1155SRico Sonntag */ 142*8add1155SRico Sonntag public function firstMarriage(): string; 143*8add1155SRico Sonntag 144*8add1155SRico Sonntag /** 145*8add1155SRico Sonntag * Find the year of the earliest marriage. 146*8add1155SRico Sonntag * 147*8add1155SRico Sonntag * @return string 148*8add1155SRico Sonntag */ 149*8add1155SRico Sonntag public function firstMarriageYear(): string; 150*8add1155SRico Sonntag 151*8add1155SRico Sonntag /** 152*8add1155SRico Sonntag * Find the names of spouses of the earliest marriage. 153*8add1155SRico Sonntag * 154*8add1155SRico Sonntag * @return string 155*8add1155SRico Sonntag */ 156*8add1155SRico Sonntag public function firstMarriageName(): string; 157*8add1155SRico Sonntag 158*8add1155SRico Sonntag /** 159*8add1155SRico Sonntag * Find the place of the earliest marriage. 160*8add1155SRico Sonntag * 161*8add1155SRico Sonntag * @return string 162*8add1155SRico Sonntag */ 163*8add1155SRico Sonntag public function firstMarriagePlace(): string; 164*8add1155SRico Sonntag 165*8add1155SRico Sonntag /** 166*8add1155SRico Sonntag * Find the latest marriage. 167*8add1155SRico Sonntag * 168*8add1155SRico Sonntag * @return string 169*8add1155SRico Sonntag */ 170*8add1155SRico Sonntag public function lastMarriage(): string; 171*8add1155SRico Sonntag 172*8add1155SRico Sonntag /** 173*8add1155SRico Sonntag * Find the year of the latest marriage. 174*8add1155SRico Sonntag * 175*8add1155SRico Sonntag * @return string 176*8add1155SRico Sonntag */ 177*8add1155SRico Sonntag public function lastMarriageYear(): string; 178*8add1155SRico Sonntag 179*8add1155SRico Sonntag /** 180*8add1155SRico Sonntag * Find the names of spouses of the latest marriage. 181*8add1155SRico Sonntag * 182*8add1155SRico Sonntag * @return string 183*8add1155SRico Sonntag */ 184*8add1155SRico Sonntag public function lastMarriageName(): string; 185*8add1155SRico Sonntag 186*8add1155SRico Sonntag /** 187*8add1155SRico Sonntag * Find the location of the latest marriage. 188*8add1155SRico Sonntag * 189*8add1155SRico Sonntag * @return string 190*8add1155SRico Sonntag */ 191*8add1155SRico Sonntag public function lastMarriagePlace(): string; 192*8add1155SRico Sonntag 193*8add1155SRico Sonntag /** 194*8add1155SRico Sonntag * Find the earliest divorce. 195*8add1155SRico Sonntag * 196*8add1155SRico Sonntag * @return string 197*8add1155SRico Sonntag */ 198*8add1155SRico Sonntag public function firstDivorce(): string; 199*8add1155SRico Sonntag 200*8add1155SRico Sonntag /** 201*8add1155SRico Sonntag * Find the year of the earliest divorce. 202*8add1155SRico Sonntag * 203*8add1155SRico Sonntag * @return string 204*8add1155SRico Sonntag */ 205*8add1155SRico Sonntag public function firstDivorceYear(): string; 206*8add1155SRico Sonntag 207*8add1155SRico Sonntag /** 208*8add1155SRico Sonntag * Find the names of individuals in the earliest divorce. 209*8add1155SRico Sonntag * 210*8add1155SRico Sonntag * @return string 211*8add1155SRico Sonntag */ 212*8add1155SRico Sonntag public function firstDivorceName(): string; 213*8add1155SRico Sonntag 214*8add1155SRico Sonntag /** 215*8add1155SRico Sonntag * Find the location of the earliest divorce. 216*8add1155SRico Sonntag * 217*8add1155SRico Sonntag * @return string 218*8add1155SRico Sonntag */ 219*8add1155SRico Sonntag public function firstDivorcePlace(): string; 220*8add1155SRico Sonntag 221*8add1155SRico Sonntag /** 222*8add1155SRico Sonntag * Find the latest divorce. 223*8add1155SRico Sonntag * 224*8add1155SRico Sonntag * @return string 225*8add1155SRico Sonntag */ 226*8add1155SRico Sonntag public function lastDivorce(): string; 227*8add1155SRico Sonntag 228*8add1155SRico Sonntag /** 229*8add1155SRico Sonntag * Find the year of the latest divorce. 230*8add1155SRico Sonntag * 231*8add1155SRico Sonntag * @return string 232*8add1155SRico Sonntag */ 233*8add1155SRico Sonntag public function lastDivorceYear(): string; 234*8add1155SRico Sonntag 235*8add1155SRico Sonntag /** 236*8add1155SRico Sonntag * Find the names of the individuals in the latest divorce. 237*8add1155SRico Sonntag * 238*8add1155SRico Sonntag * @return string 239*8add1155SRico Sonntag */ 240*8add1155SRico Sonntag public function lastDivorceName(): string; 241*8add1155SRico Sonntag 242*8add1155SRico Sonntag /** 243*8add1155SRico Sonntag * Find the location of the latest divorce. 244*8add1155SRico Sonntag * 245*8add1155SRico Sonntag * @return string 246*8add1155SRico Sonntag */ 247*8add1155SRico Sonntag public function lastDivorcePlace(): string; 248*8add1155SRico Sonntag} 249