import { Field, InputType } from '@nestjs/graphql';
import { ItunesEpisodeTypeEnum } from 'schemas/enum/itunes-episode-type.enum';
import { EpisodeEnclosureCreateDto } from './episode-enclosure-create.dto';

@InputType()
export class EpisodeCreateDto {
  @Field({ nullable: true })
  title?: string;

  @Field({ nullable: true })
  description?: string;

  @Field()
  url: string;

  @Field({ nullable: true })
  guid?: string;

  @Field(type => [String], { nullable: true })
  categories?: string[];

  @Field({ nullable: true })
  author?: string;

  @Field()
  date: Date;

  @Field({ nullable: true })
  lat?: number;

  @Field({ nullable: true })
  long?: number;

  @Field(type => EpisodeEnclosureCreateDto, { nullable: true })
  enclosure?: EpisodeEnclosureCreateDto;

  @Field({ nullable: true })
  content?: string;

  @Field({ nullable: true })
  itunesAuthor?: string;

  @Field({ nullable: true })
  itunesExplicit?: boolean;

  @Field({ nullable: true })
  itunesSubtitle?: string;

  @Field({ nullable: true })
  itunesSummary?: string;

  @Field({ nullable: true })
  itunesDuration?: number;

  @Field({ nullable: true })
  itunesImage?: string;

  @Field({ nullable: true })
  itunesSeason?: number;

  @Field({ nullable: true })
  itunesEpisode?: number;

  @Field({ nullable: true })
  itunesTitle?: string;

  @Field(type => ItunesEpisodeTypeEnum, { nullable: true })
  itunesEpisodeType?: ItunesEpisodeTypeEnum;
}