mirror of
https://github.com/ceratic/MediaCollectorLibary.git
synced 2026-05-13 23:56:46 +02:00
Stuff i guess ?
This commit is contained in:
@@ -25,7 +25,7 @@ class AdultVideo extends Model
|
||||
'external_id'
|
||||
];
|
||||
|
||||
public static function getAllWithPagination(\PDO $pdo, int $page, int $perPage, string $search = '', array $genres = [], array $directors = []): array
|
||||
public static function getAllWithPagination(\PDO $pdo, int $page, int $perPage, string $search = '', array $genres = [], array $directors = [], string $sort = 'recent'): array
|
||||
{
|
||||
$offset = ($page - 1) * $perPage;
|
||||
|
||||
@@ -61,7 +61,24 @@ class AdultVideo extends Model
|
||||
$sql .= $whereClause . " av.director IN (" . implode(',', $placeholders) . ")";
|
||||
}
|
||||
|
||||
$sql .= " ORDER BY av.created_at DESC LIMIT :limit OFFSET :offset";
|
||||
// Add sorting
|
||||
$sortOptions = [
|
||||
'recent' => 'av.created_at DESC',
|
||||
'oldest' => 'av.created_at ASC',
|
||||
'title_asc' => 'av.title ASC',
|
||||
'title_desc' => 'av.title DESC',
|
||||
'year_asc' => 'av.release_date ASC',
|
||||
'year_desc' => 'av.release_date DESC',
|
||||
'rating_asc' => 'av.rating ASC',
|
||||
'rating_desc' => 'av.rating DESC',
|
||||
'views_asc' => 'av.watch_count ASC',
|
||||
'views_desc' => 'av.watch_count DESC',
|
||||
'runtime_asc' => 'av.runtime_minutes ASC',
|
||||
'runtime_desc' => 'av.runtime_minutes DESC',
|
||||
];
|
||||
|
||||
$sortOrder = $sortOptions[$sort] ?? $sortOptions['recent'];
|
||||
$sql .= " ORDER BY " . $sortOrder . " LIMIT :limit OFFSET :offset";
|
||||
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->bindValue(':limit', $perPage, \PDO::PARAM_INT);
|
||||
@@ -143,7 +160,7 @@ class AdultVideo extends Model
|
||||
/**
|
||||
* Get all actors associated with this adult video
|
||||
*/
|
||||
public function actors()
|
||||
public function actors($args)
|
||||
{
|
||||
$stmt = $this->pdo->prepare("
|
||||
SELECT a.*
|
||||
@@ -152,7 +169,7 @@ class AdultVideo extends Model
|
||||
WHERE aav.adult_video_id = :adult_video_id
|
||||
ORDER BY a.name ASC
|
||||
");
|
||||
$stmt->execute(['adult_video_id' => $this->id]);
|
||||
$stmt->execute(['adult_video_id' => $args]);
|
||||
return $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
@@ -200,21 +217,6 @@ class AdultVideo extends Model
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get TV show statistics
|
||||
*/
|
||||
public static function getStats(\PDO $pdo): array
|
||||
{
|
||||
$stmt = $pdo->query("
|
||||
SELECT
|
||||
COUNT(*) as total_adult_videos,
|
||||
COUNT(CASE WHEN is_favorite = 1 THEN 1 END) as favorite_adult_videos,
|
||||
AVG(rating) as avg_rating
|
||||
FROM adult_videos
|
||||
");
|
||||
return $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get available genres for filtering
|
||||
*/
|
||||
@@ -242,4 +244,36 @@ class AdultVideo extends Model
|
||||
");
|
||||
return $stmt->fetchAll(\PDO::FETCH_COLUMN);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get TV show statistics
|
||||
*/
|
||||
public static function getStats(\PDO $pdo): array
|
||||
{
|
||||
$stmt = $pdo->query("
|
||||
SELECT
|
||||
COUNT(*) as total_adult_videos,
|
||||
COUNT(CASE WHEN is_favorite = 1 THEN 1 END) as favorite_adult_videos,
|
||||
AVG(rating) as avg_rating
|
||||
FROM adult_videos
|
||||
");
|
||||
return $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
/**
|
||||
* Search actors by name
|
||||
*/
|
||||
public static function searchActors(\PDO $pdo, string $query): array
|
||||
{
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT a.*
|
||||
FROM actors a
|
||||
WHERE a.name LIKE :query
|
||||
ORDER BY a.name
|
||||
LIMIT 10
|
||||
");
|
||||
|
||||
$stmt->execute(['query' => "%{$query}%"]);
|
||||
return $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user