18add1155SRico Sonntag<?php 2*3976b470SGreg Roach 38add1155SRico Sonntag/** 48add1155SRico Sonntag * webtrees: online genealogy 5242a7862SGreg Roach * Copyright (C) 2019 webtrees development team 68add1155SRico Sonntag * This program is free software: you can redistribute it and/or modify 78add1155SRico Sonntag * it under the terms of the GNU General Public License as published by 88add1155SRico Sonntag * the Free Software Foundation, either version 3 of the License, or 98add1155SRico Sonntag * (at your option) any later version. 108add1155SRico Sonntag * This program is distributed in the hope that it will be useful, 118add1155SRico Sonntag * but WITHOUT ANY WARRANTY; without even the implied warranty of 128add1155SRico Sonntag * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 138add1155SRico Sonntag * GNU General Public License for more details. 148add1155SRico Sonntag * You should have received a copy of the GNU General Public License 158add1155SRico Sonntag * along with this program. If not, see <http://www.gnu.org/licenses/>. 168add1155SRico Sonntag */ 178add1155SRico Sonntagdeclare(strict_types=1); 188add1155SRico Sonntag 198add1155SRico Sonntagnamespace Fisharebest\Webtrees\Statistics\Repository\Interfaces; 208add1155SRico Sonntag 218add1155SRico Sonntag/** 228add1155SRico Sonntag * A repository providing methods for event related statistics. 238add1155SRico Sonntag */ 248add1155SRico Sonntaginterface EventRepositoryInterface 258add1155SRico Sonntag{ 268add1155SRico Sonntag /** 278add1155SRico Sonntag * Count the number of events (with dates). 288add1155SRico Sonntag * 298add1155SRico Sonntag * @param string[] $events 308add1155SRico Sonntag * 318add1155SRico Sonntag * @return string 328add1155SRico Sonntag */ 338add1155SRico Sonntag public function totalEvents(array $events = []): string; 348add1155SRico Sonntag 358add1155SRico Sonntag /** 368add1155SRico Sonntag * Count the number of births events (BIRT, CHR, BAPM, ADOP). 378add1155SRico Sonntag * 388add1155SRico Sonntag * @return string 398add1155SRico Sonntag */ 408add1155SRico Sonntag public function totalEventsBirth(): string; 418add1155SRico Sonntag 428add1155SRico Sonntag /** 438add1155SRico Sonntag * Count the number of births (BIRT). 448add1155SRico Sonntag * 458add1155SRico Sonntag * @return string 468add1155SRico Sonntag */ 478add1155SRico Sonntag public function totalBirths(): string; 488add1155SRico Sonntag 498add1155SRico Sonntag /** 508add1155SRico Sonntag * Count the number of death events (DEAT, BURI, CREM). 518add1155SRico Sonntag * 528add1155SRico Sonntag * @return string 538add1155SRico Sonntag */ 548add1155SRico Sonntag public function totalEventsDeath(): string; 558add1155SRico Sonntag 568add1155SRico Sonntag /** 578add1155SRico Sonntag * Count the number of deaths (DEAT). 588add1155SRico Sonntag * 598add1155SRico Sonntag * @return string 608add1155SRico Sonntag */ 618add1155SRico Sonntag public function totalDeaths(): string; 628add1155SRico Sonntag 638add1155SRico Sonntag /** 648add1155SRico Sonntag * Count the number of marriage events (MARR, _NMR). 658add1155SRico Sonntag * 668add1155SRico Sonntag * @return string 678add1155SRico Sonntag */ 688add1155SRico Sonntag public function totalEventsMarriage(): string; 698add1155SRico Sonntag 708add1155SRico Sonntag /** 718add1155SRico Sonntag * Count the number of marriages (MARR). 728add1155SRico Sonntag * 738add1155SRico Sonntag * @return string 748add1155SRico Sonntag */ 758add1155SRico Sonntag public function totalMarriages(): string; 768add1155SRico Sonntag 778add1155SRico Sonntag /** 788add1155SRico Sonntag * Count the number of divorce events (DIV, ANUL, _SEPR). 798add1155SRico Sonntag * 808add1155SRico Sonntag * @return string 818add1155SRico Sonntag */ 828add1155SRico Sonntag public function totalEventsDivorce(): string; 838add1155SRico Sonntag 848add1155SRico Sonntag /** 858add1155SRico Sonntag * Count the number of divorces (DIV). 868add1155SRico Sonntag * 878add1155SRico Sonntag * @return string 888add1155SRico Sonntag */ 898add1155SRico Sonntag public function totalDivorces(): string; 908add1155SRico Sonntag 918add1155SRico Sonntag /** 928add1155SRico Sonntag * Count the number of other events (not birth, death, marriage or divorce related). 938add1155SRico Sonntag * 948add1155SRico Sonntag * @return string 958add1155SRico Sonntag */ 968add1155SRico Sonntag public function totalEventsOther(): string; 978add1155SRico Sonntag 988add1155SRico Sonntag /** 998add1155SRico Sonntag * Find the earliest event. 1008add1155SRico Sonntag * 1018add1155SRico Sonntag * @return string 1028add1155SRico Sonntag */ 1038add1155SRico Sonntag public function firstEvent(): string; 1048add1155SRico Sonntag 1058add1155SRico Sonntag /** 1068add1155SRico Sonntag * Find the latest event. 1078add1155SRico Sonntag * 1088add1155SRico Sonntag * @return string 1098add1155SRico Sonntag */ 1108add1155SRico Sonntag public function lastEvent(): string; 1118add1155SRico Sonntag 1128add1155SRico Sonntag /** 1138add1155SRico Sonntag * Find the year of the earliest event. 1148add1155SRico Sonntag * 1158add1155SRico Sonntag * @return string 1168add1155SRico Sonntag */ 1178add1155SRico Sonntag public function firstEventYear(): string; 1188add1155SRico Sonntag 1198add1155SRico Sonntag /** 1208add1155SRico Sonntag * Find the year of the latest event. 1218add1155SRico Sonntag * 1228add1155SRico Sonntag * @return string 1238add1155SRico Sonntag */ 1248add1155SRico Sonntag public function lastEventYear(): string; 1258add1155SRico Sonntag 1268add1155SRico Sonntag /** 1278add1155SRico Sonntag * Find the type of the earliest event. 1288add1155SRico Sonntag * 1298add1155SRico Sonntag * @return string 1308add1155SRico Sonntag */ 1318add1155SRico Sonntag public function firstEventType(): string; 1328add1155SRico Sonntag 1338add1155SRico Sonntag /** 1348add1155SRico Sonntag * Find the type of the latest event. 1358add1155SRico Sonntag * 1368add1155SRico Sonntag * @return string 1378add1155SRico Sonntag */ 1388add1155SRico Sonntag public function lastEventType(): string; 1398add1155SRico Sonntag 1408add1155SRico Sonntag /** 1418add1155SRico Sonntag * Find the name of the individual with the earliest event. 1428add1155SRico Sonntag * 1438add1155SRico Sonntag * @return string 1448add1155SRico Sonntag */ 1458add1155SRico Sonntag public function firstEventName(): string; 1468add1155SRico Sonntag 1478add1155SRico Sonntag /** 1488add1155SRico Sonntag * Find the name of the individual with the latest event. 1498add1155SRico Sonntag * 1508add1155SRico Sonntag * @return string 1518add1155SRico Sonntag */ 1528add1155SRico Sonntag public function lastEventName(): string; 1538add1155SRico Sonntag 1548add1155SRico Sonntag /** 1558add1155SRico Sonntag * Find the location of the earliest event. 1568add1155SRico Sonntag * 1578add1155SRico Sonntag * @return string 1588add1155SRico Sonntag */ 1598add1155SRico Sonntag public function firstEventPlace(): string; 1608add1155SRico Sonntag 1618add1155SRico Sonntag /** 1628add1155SRico Sonntag * Find the location of the latest event. 1638add1155SRico Sonntag * 1648add1155SRico Sonntag * @return string 1658add1155SRico Sonntag */ 1668add1155SRico Sonntag public function lastEventPlace(): string; 1678add1155SRico Sonntag} 168