Compare commits

...

2 Commits

Author SHA1 Message Date
root
2acb4fc4a4 Fix duplicate identifier: rename externalServiceId to foreignId
- Rename to avoid collision with existing externalServiceId column
- Update all references in MediaRequest entity
2026-04-03 22:03:19 -05:00
root
9a63f4a4dd Fix TypeScript type errors for new media types
- Update BlocklistItem interface to accept music/book media types
- Update RequestList MediaType union to include music/book
2026-04-03 21:50:03 -05:00
4 changed files with 11 additions and 11 deletions

View File

@@ -100,10 +100,10 @@ class Media {
@Column({ nullable: true }) @Column({ nullable: true })
@Index() @Index()
public externalServiceId?: string; public foreignId?: string;
@Column({ nullable: true }) @Column({ nullable: true })
public externalServiceTitle?: string; public foreignTitle?: string;
@Column({ type: 'int', default: MediaStatus.UNKNOWN }) @Column({ type: 'int', default: MediaStatus.UNKNOWN })
@Index() @Index()

View File

@@ -156,7 +156,7 @@ export class MediaRequest {
let media = await mediaRepository.findOne({ let media = await mediaRepository.findOne({
where: isMusicOrBook where: isMusicOrBook
? { ? {
externalServiceId: requestBody.foreignId, foreignId: requestBody.foreignId,
mediaType: requestBody.mediaType, mediaType: requestBody.mediaType,
} }
: { : {
@@ -170,8 +170,8 @@ export class MediaRequest {
media = new Media({ media = new Media({
tmdbId: isMusicOrBook ? 0 : tmdbMedia.id, tmdbId: isMusicOrBook ? 0 : tmdbMedia.id,
tvdbId: isMusicOrBook ? 0 : (requestBody.tvdbId ?? tmdbMedia.external_ids?.tvdb_id), tvdbId: isMusicOrBook ? 0 : (requestBody.tvdbId ?? tmdbMedia.external_ids?.tvdb_id),
externalServiceId: isMusicOrBook ? requestBody.foreignId : undefined, foreignId: isMusicOrBook ? requestBody.foreignId : undefined,
externalServiceTitle: isMusicOrBook ? requestBody.foreignTitle : undefined, foreignTitle: isMusicOrBook ? requestBody.foreignTitle : undefined,
status: !requestBody.is4k ? MediaStatus.PENDING : MediaStatus.UNKNOWN, status: !requestBody.is4k ? MediaStatus.PENDING : MediaStatus.UNKNOWN,
status4k: requestBody.is4k ? MediaStatus.PENDING : MediaStatus.UNKNOWN, status4k: requestBody.is4k ? MediaStatus.PENDING : MediaStatus.UNKNOWN,
mediaType: requestBody.mediaType, mediaType: requestBody.mediaType,
@@ -206,7 +206,7 @@ export class MediaRequest {
}); });
if (isMusicOrBook) { if (isMusicOrBook) {
existingQuery.andWhere('media.externalServiceId = :foreignId', { existingQuery.andWhere('media.foreignId = :foreignId', {
foreignId: requestBody.foreignId, foreignId: requestBody.foreignId,
}); });
} else { } else {
@@ -570,7 +570,7 @@ export class MediaRequest {
let media = await mediaRepository.findOne({ let media = await mediaRepository.findOne({
where: { where: {
externalServiceId: requestBody.foreignId, foreignId: requestBody.foreignId,
mediaType: requestBody.mediaType, mediaType: requestBody.mediaType,
}, },
relations: ['requests'], relations: ['requests'],
@@ -580,8 +580,8 @@ export class MediaRequest {
media = new Media({ media = new Media({
tmdbId: 0, tmdbId: 0,
tvdbId: 0, tvdbId: 0,
externalServiceId: requestBody.foreignId, foreignId: requestBody.foreignId,
externalServiceTitle: requestBody.foreignTitle, foreignTitle: requestBody.foreignTitle,
status: MediaStatus.PENDING, status: MediaStatus.PENDING,
status4k: MediaStatus.UNKNOWN, status4k: MediaStatus.UNKNOWN,
mediaType: requestBody.mediaType, mediaType: requestBody.mediaType,

View File

@@ -3,7 +3,7 @@ import type { PaginatedResponse } from '@server/interfaces/api/common';
export interface BlocklistItem { export interface BlocklistItem {
tmdbId: number; tmdbId: number;
mediaType: 'movie' | 'tv'; mediaType: 'movie' | 'tv' | 'music' | 'book';
title?: string; title?: string;
createdAt?: Date; createdAt?: Date;
user?: User; user?: User;

View File

@@ -51,7 +51,7 @@ type Sort = 'added' | 'modified';
type SortDirection = 'asc' | 'desc'; type SortDirection = 'asc' | 'desc';
type MediaType = 'all' | 'movie' | 'tv'; type MediaType = 'all' | 'movie' | 'tv' | 'music' | 'book';
const RequestList = () => { const RequestList = () => {
const router = useRouter(); const router = useRouter();