|
@ -1,5 +1,5 @@ |
|
|
import { IApiMovieDetails } from "@common/api_schema"; |
|
|
import { IApiMovieDetails } from "@common/api_schema"; |
|
|
import { Entity, PrimaryGeneratedColumn, Column, BaseEntity, ManyToOne, OneToMany, OneToOne, JoinColumn } from "typeorm"; |
|
|
|
|
|
|
|
|
import { Entity, PrimaryGeneratedColumn, Column, BaseEntity, ManyToOne, OneToMany, OneToOne, JoinColumn, CreateDateColumn } from "typeorm"; |
|
|
import { MovieInfo } from "./MovieInfo"; |
|
|
import { MovieInfo } from "./MovieInfo"; |
|
|
import { MovieTorrent } from "./MovieTorrent"; |
|
|
import { MovieTorrent } from "./MovieTorrent"; |
|
|
import { User } from "./User"; |
|
|
import { User } from "./User"; |
|
@ -10,14 +10,26 @@ export class MovieTicket extends BaseEntity |
|
|
@PrimaryGeneratedColumn() |
|
|
@PrimaryGeneratedColumn() |
|
|
id!: number; |
|
|
id!: number; |
|
|
|
|
|
|
|
|
@Column({ type: "varchar", length: 27, unique: true, nullable: true }) |
|
|
|
|
|
|
|
|
@Column({ type: "varchar", length: 27, nullable: true }) |
|
|
imdbId!: string | null; |
|
|
imdbId!: string | null; |
|
|
|
|
|
|
|
|
@Column({ type: "varchar", nullable: true }) |
|
|
|
|
|
title!: string | null; |
|
|
|
|
|
|
|
|
@Column({ type: "varchar" }) |
|
|
|
|
|
title!: string; |
|
|
|
|
|
|
|
|
@Column({ type: "year", nullable: true }) |
|
|
|
|
|
year!: number | null; |
|
|
|
|
|
|
|
|
@Column({ type: "year" }) |
|
|
|
|
|
year!: number; |
|
|
|
|
|
|
|
|
|
|
|
@CreateDateColumn() |
|
|
|
|
|
createdAt!: Date; |
|
|
|
|
|
|
|
|
|
|
|
@Column({ default: false }) |
|
|
|
|
|
isFulfilled!: boolean; |
|
|
|
|
|
|
|
|
|
|
|
@Column({ default: false }) |
|
|
|
|
|
isCanceled!: boolean; |
|
|
|
|
|
|
|
|
|
|
|
@Column({ default: false }) |
|
|
|
|
|
isStale!: boolean; |
|
|
|
|
|
|
|
|
@ManyToOne(() => User, user => user.movieTickets) |
|
|
@ManyToOne(() => User, user => user.movieTickets) |
|
|
user!: User; |
|
|
user!: User; |
|
@ -27,15 +39,16 @@ export class MovieTicket extends BaseEntity |
|
|
|
|
|
|
|
|
@OneToOne(() => MovieInfo, { nullable: true }) |
|
|
@OneToOne(() => MovieInfo, { nullable: true }) |
|
|
@JoinColumn() |
|
|
@JoinColumn() |
|
|
info!: MovieInfo; |
|
|
|
|
|
|
|
|
info!: MovieInfo | null; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Insert a request via IMDb movie details |
|
|
* Insert a request via IMDb movie details |
|
|
*/ |
|
|
*/ |
|
|
public static async requestImdb(user: User, imdbId: string, title: string | null = null) { |
|
|
|
|
|
|
|
|
public static async requestImdb(user: User, imdbId: string, title: string, year: number) { |
|
|
let ticket = new MovieTicket(); |
|
|
let ticket = new MovieTicket(); |
|
|
ticket.imdbId = imdbId; |
|
|
ticket.imdbId = imdbId; |
|
|
ticket.title = title; |
|
|
ticket.title = title; |
|
|
|
|
|
ticket.year = year; |
|
|
ticket.user = user; |
|
|
ticket.user = user; |
|
|
return await ticket.save(); |
|
|
return await ticket.save(); |
|
|
} |
|
|
} |
|
|