1<?php 2 3/** 4 * webtrees: online genealogy 5 * Copyright (C) 2021 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 22use stdClass; 23 24/** 25 * A repository providing methods for place related statistics. 26 */ 27interface PlaceRepositoryInterface 28{ 29 /** 30 * Places 31 * 32 * @param string $what 33 * @param string $fact 34 * @param int $parent 35 * @param bool $country 36 * 37 * @return array<int|stdClass> 38 */ 39 public function statsPlaces(string $what = 'ALL', string $fact = '', int $parent = 0, bool $country = false): array; 40 41 /** 42 * A list of common birth places. 43 * 44 * @return string 45 */ 46 public function commonBirthPlacesList(): string; 47 48 /** 49 * A list of common death places. 50 * 51 * @return string 52 */ 53 public function commonDeathPlacesList(): string; 54 55 /** 56 * A list of common marriage places. 57 * 58 * @return string 59 */ 60 public function commonMarriagePlacesList(): string; 61 62 /** 63 * A list of common countries. 64 * 65 * @return string 66 */ 67 public function commonCountriesList(): string; 68 69 /** 70 * Count total places. 71 * 72 * @return string 73 */ 74 public function totalPlaces(): string; 75 76 /** 77 * Create a chart showing where events occurred. 78 * 79 * @param string $chart_shows 80 * @param string $chart_type 81 * @param string $surname 82 * 83 * @return string 84 */ 85 public function chartDistribution( 86 string $chart_shows = 'world', 87 string $chart_type = '', 88 string $surname = '' 89 ): string; 90} 91