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 })
@Index()
public externalServiceId?: string;
public foreignId?: string;
@Column({ nullable: true })
public externalServiceTitle?: string;
public foreignTitle?: string;
@Column({ type: 'int', default: MediaStatus.UNKNOWN })
@Index()

View File

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

View File

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

View File

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