1<?php 2/* 3 * vim:set softtabstop=4 shiftwidth=4 expandtab: 4 * 5 * LICENSE: GNU Affero General Public License, version 3 (AGPL-3.0-or-later) 6 * Copyright 2001 - 2020 Ampache.org 7 * 8 * This program is free software: you can redistribute it and/or modify 9 * it under the terms of the GNU Affero General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU Affero General Public License for more details. 17 * 18 * You should have received a copy of the GNU Affero General Public License 19 * along with this program. If not, see <https://www.gnu.org/licenses/>. 20 * 21 */ 22 23declare(strict_types=0); 24 25namespace Ampache\Repository\Model; 26 27use Ampache\Module\Authorization\Access; 28 29interface ModelFactoryInterface 30{ 31 public function createPlaylist(int $id): Playlist; 32 33 public function createBrowse( 34 ?int $browse_id = null, 35 bool $cached = true 36 ): Browse; 37 38 public function createSong( 39 ?int $songId = null, 40 string $limitThreshold = '' 41 ): Song; 42 43 public function createRating( 44 int $objectId, 45 string $typeId 46 ): Rating; 47 48 public function createUser( 49 ?int $userId = null 50 ): User; 51 52 public function createAlbum( 53 ?int $albumId = null 54 ): Album; 55 56 public function createArtist( 57 ?int $artistId = null 58 ): Artist; 59 60 public function createWanted( 61 ?int $wantedId = null 62 ): Wanted; 63 64 public function createArt( 65 ?int $artId = null, 66 string $type = 'album', 67 string $kind = 'default' 68 ): Art; 69 70 public function createBroadcast( 71 int $broadcastId 72 ): Broadcast; 73 74 public function createLiveStream( 75 int $liveStreamId 76 ): Live_Stream; 77 78 public function createChannel( 79 int $channelId 80 ): Channel; 81 82 public function createPodcast( 83 int $podcastId 84 ): Podcast; 85 86 public function createPodcastEpisode( 87 int $podcastEpisodeId 88 ): Podcast_Episode; 89 90 public function createPrivateMsg( 91 int $privateMessageId 92 ): PrivateMsg; 93 94 public function createTvShow( 95 int $tvShowId 96 ): TvShow; 97 98 public function createDemocratic( 99 int $democraticId 100 ): Democratic; 101 102 public function createTmpPlaylist( 103 int $tmpPlaylistId 104 ): Tmp_Playlist; 105 106 public function createSearch( 107 ?int $searchId = 0, 108 string $searchType = 'song', 109 ?User $user = null 110 ): Search; 111 112 public function createShoutbox( 113 int $shoutboxId 114 ): Shoutbox; 115 116 public function createLicense( 117 int $licenseId 118 ): License; 119 120 public function createAccess( 121 int $accessId 122 ): Access; 123 124 public function createLabel( 125 int $labelId 126 ): Label; 127} 128