import { ApiProperty } from "@nestjs/swagger";
import { BillingCycle } from "@prisma/client";

export class PricingPlanDto {
  @ApiProperty()
  id!: string;

  @ApiProperty()
  merchantId!: string;

  @ApiProperty()
  name!: string;

  @ApiProperty({ format: "date-time" })
  validFrom!: string;

  @ApiProperty({ format: "date-time", nullable: true })
  validUntil!: string | null;

  @ApiProperty({ example: "150000.0000" })
  monthlyFee!: string;

  @ApiProperty({ example: "PYG" })
  monthlyFeeCurrency!: string;

  @ApiProperty({ example: "500.0000" })
  txFeeFixed!: string;

  @ApiProperty({ example: "0.3000" })
  txFeePercentage!: string;

  @ApiProperty({ example: "PYG" })
  txFeeCurrency!: string;

  @ApiProperty({ nullable: true, example: 200 })
  includedTxPerMonth!: number | null;

  @ApiProperty({ nullable: true, example: "800.0000" })
  overQuotaTxFee!: string | null;

  @ApiProperty({ enum: BillingCycle })
  billingCycle!: BillingCycle;

  @ApiProperty()
  free!: boolean;

  @ApiProperty()
  selfBillingEnabled!: boolean;

  @ApiProperty()
  active!: boolean;

  @ApiProperty({ format: "date-time" })
  createdAt!: string;
}
