import { Int, ArgsType, Field, InputType } from "@nestjs/graphql"; import { PlanPriceInterval } from "../index"; @InputType() export class PaginationInput { @Field(() => Int) skip: number = 0; @Field(() => Int) limit: number = 10; } @InputType({ description: "Use the order value -1 in the sort object to sort descending.", }) export class SortInput { @Field() field!: string; @Field({ defaultValue: 1 }) order!: number; } @InputType() export class ConnectionPaginationInput { @Field(() => Int, { nullable: true }) first?: number = 0; @Field(() => Int, { nullable: true }) last?: number = 10; @Field({ nullable: true }) after?: string; @Field({ nullable: true }) before?: string; } @ArgsType() export class PaginationArgs { @Field(() => PaginationInput) paginate?: PaginationInput; } @InputType() export class PriceInput { @Field() price!: number; @Field() currency!: string; @Field({ nullable: true }) id?: string; @Field() nickname!: string; @Field(() => Int, { nullable: true }) trialDays?: number; @Field(() => Int, { nullable: true, description: "The interval cunt for the field interval, eg. for interval MONTH, you can pass 3", }) intervalCount?: number; @Field(() => PlanPriceInterval) interval!: PlanPriceInterval; } @InputType() export class KeyValuePairInput { @Field() key!: string; @Field({ nullable: true }) value?: string; } @InputType() export class FeatureInput { @Field() name!: string; @Field() normalizedName!: string; @Field({ nullable: true }) description?: string; @Field(() => Int, { nullable: true }) min?: number; @Field(() => Int, { nullable: true }) max?: number; @Field() active!: boolean; @Field() full!: boolean; }