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 media type related statistics. 22*8add1155SRico Sonntag */ 23*8add1155SRico Sonntaginterface MediaRepositoryInterface 24*8add1155SRico Sonntag{ 25*8add1155SRico Sonntag /** 26*8add1155SRico Sonntag * Count the number of media records. 27*8add1155SRico Sonntag * 28*8add1155SRico Sonntag * @return string 29*8add1155SRico Sonntag */ 30*8add1155SRico Sonntag public function totalMedia(): string; 31*8add1155SRico Sonntag 32*8add1155SRico Sonntag /** 33*8add1155SRico Sonntag * Count the number of media records with type "audio". 34*8add1155SRico Sonntag * 35*8add1155SRico Sonntag * @return string 36*8add1155SRico Sonntag */ 37*8add1155SRico Sonntag public function totalMediaAudio(): string; 38*8add1155SRico Sonntag 39*8add1155SRico Sonntag /** 40*8add1155SRico Sonntag * Count the number of media records with type "book". 41*8add1155SRico Sonntag * 42*8add1155SRico Sonntag * @return string 43*8add1155SRico Sonntag */ 44*8add1155SRico Sonntag public function totalMediaBook(): string; 45*8add1155SRico Sonntag 46*8add1155SRico Sonntag /** 47*8add1155SRico Sonntag * Count the number of media records with type "card". 48*8add1155SRico Sonntag * 49*8add1155SRico Sonntag * @return string 50*8add1155SRico Sonntag */ 51*8add1155SRico Sonntag public function totalMediaCard(): string; 52*8add1155SRico Sonntag 53*8add1155SRico Sonntag /** 54*8add1155SRico Sonntag * Count the number of media records with type "certificate". 55*8add1155SRico Sonntag * 56*8add1155SRico Sonntag * @return string 57*8add1155SRico Sonntag */ 58*8add1155SRico Sonntag public function totalMediaCertificate(): string; 59*8add1155SRico Sonntag 60*8add1155SRico Sonntag /** 61*8add1155SRico Sonntag * Count the number of media records with type "coat of arms". 62*8add1155SRico Sonntag * 63*8add1155SRico Sonntag * @return string 64*8add1155SRico Sonntag */ 65*8add1155SRico Sonntag public function totalMediaCoatOfArms(): string; 66*8add1155SRico Sonntag 67*8add1155SRico Sonntag /** 68*8add1155SRico Sonntag * Count the number of media records with type "document". 69*8add1155SRico Sonntag * 70*8add1155SRico Sonntag * @return string 71*8add1155SRico Sonntag */ 72*8add1155SRico Sonntag public function totalMediaDocument(): string; 73*8add1155SRico Sonntag 74*8add1155SRico Sonntag /** 75*8add1155SRico Sonntag * Count the number of media records with type "electronic". 76*8add1155SRico Sonntag * 77*8add1155SRico Sonntag * @return string 78*8add1155SRico Sonntag */ 79*8add1155SRico Sonntag public function totalMediaElectronic(): string; 80*8add1155SRico Sonntag 81*8add1155SRico Sonntag /** 82*8add1155SRico Sonntag * Count the number of media records with type "magazine". 83*8add1155SRico Sonntag * 84*8add1155SRico Sonntag * @return string 85*8add1155SRico Sonntag */ 86*8add1155SRico Sonntag public function totalMediaMagazine(): string; 87*8add1155SRico Sonntag 88*8add1155SRico Sonntag /** 89*8add1155SRico Sonntag * Count the number of media records with type "manuscript". 90*8add1155SRico Sonntag * 91*8add1155SRico Sonntag * @return string 92*8add1155SRico Sonntag */ 93*8add1155SRico Sonntag public function totalMediaManuscript(): string; 94*8add1155SRico Sonntag 95*8add1155SRico Sonntag /** 96*8add1155SRico Sonntag * Count the number of media records with type "map". 97*8add1155SRico Sonntag * 98*8add1155SRico Sonntag * @return string 99*8add1155SRico Sonntag */ 100*8add1155SRico Sonntag public function totalMediaMap(): string; 101*8add1155SRico Sonntag 102*8add1155SRico Sonntag /** 103*8add1155SRico Sonntag * Count the number of media records with type "microfiche". 104*8add1155SRico Sonntag * 105*8add1155SRico Sonntag * @return string 106*8add1155SRico Sonntag */ 107*8add1155SRico Sonntag public function totalMediaFiche(): string; 108*8add1155SRico Sonntag 109*8add1155SRico Sonntag /** 110*8add1155SRico Sonntag * Count the number of media records with type "microfilm". 111*8add1155SRico Sonntag * 112*8add1155SRico Sonntag * @return string 113*8add1155SRico Sonntag */ 114*8add1155SRico Sonntag public function totalMediaFilm(): string; 115*8add1155SRico Sonntag 116*8add1155SRico Sonntag /** 117*8add1155SRico Sonntag * Count the number of media records with type "newspaper". 118*8add1155SRico Sonntag * 119*8add1155SRico Sonntag * @return string 120*8add1155SRico Sonntag */ 121*8add1155SRico Sonntag public function totalMediaNewspaper(): string; 122*8add1155SRico Sonntag 123*8add1155SRico Sonntag /** 124*8add1155SRico Sonntag * Count the number of media records with type "painting". 125*8add1155SRico Sonntag * 126*8add1155SRico Sonntag * @return string 127*8add1155SRico Sonntag */ 128*8add1155SRico Sonntag public function totalMediaPainting(): string; 129*8add1155SRico Sonntag 130*8add1155SRico Sonntag /** 131*8add1155SRico Sonntag * Count the number of media records with type "photograph". 132*8add1155SRico Sonntag * 133*8add1155SRico Sonntag * @return string 134*8add1155SRico Sonntag */ 135*8add1155SRico Sonntag public function totalMediaPhoto(): string; 136*8add1155SRico Sonntag 137*8add1155SRico Sonntag /** 138*8add1155SRico Sonntag * Count the number of media records with type "tombstone". 139*8add1155SRico Sonntag * 140*8add1155SRico Sonntag * @return string 141*8add1155SRico Sonntag */ 142*8add1155SRico Sonntag public function totalMediaTombstone(): string; 143*8add1155SRico Sonntag 144*8add1155SRico Sonntag /** 145*8add1155SRico Sonntag * Count the number of media records with type "video". 146*8add1155SRico Sonntag * 147*8add1155SRico Sonntag * @return string 148*8add1155SRico Sonntag */ 149*8add1155SRico Sonntag public function totalMediaVideo(): string; 150*8add1155SRico Sonntag 151*8add1155SRico Sonntag /** 152*8add1155SRico Sonntag * Count the number of media records with type "other". 153*8add1155SRico Sonntag * 154*8add1155SRico Sonntag * @return string 155*8add1155SRico Sonntag */ 156*8add1155SRico Sonntag public function totalMediaOther(): string; 157*8add1155SRico Sonntag 158*8add1155SRico Sonntag /** 159*8add1155SRico Sonntag * Count the number of media records with type "unknown". 160*8add1155SRico Sonntag * 161*8add1155SRico Sonntag * @return string 162*8add1155SRico Sonntag */ 163*8add1155SRico Sonntag public function totalMediaUnknown(): string; 164*8add1155SRico Sonntag 165*8add1155SRico Sonntag /** 166*8add1155SRico Sonntag * Create a chart of media types. 167*8add1155SRico Sonntag * 168*8add1155SRico Sonntag * @param string|null $size 169*8add1155SRico Sonntag * @param string|null $color_from 170*8add1155SRico Sonntag * @param string|null $color_to 171*8add1155SRico Sonntag * 172*8add1155SRico Sonntag * @return string 173*8add1155SRico Sonntag */ 174*8add1155SRico Sonntag public function chartMedia(string $size = null, string $color_from = null, string $color_to = null): string; 175*8add1155SRico Sonntag} 176