All files / payments/interfaces payments.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 0/0
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 325x 5x   5x             5x                               5x          
import { ApiProperty } from '@nestjs/swagger'
import { IsEnum } from 'class-validator'
 
export class PaymentDTO {
  @IsEnum(['single', 'family'])
  @ApiProperty({
    enum: ['single', 'family'],
    description: 'Payment plan',
    example: 'single',
  })
  plan: PaymentOptions
}
 
export type PaymentOptions = 'single' | 'family'
type CheckoutStatus = 'free' | 'pending' | 'paid' | 'failed'
 
export type CheckoutInformation = {
  status: CheckoutStatus
  lastInformationTime: number
}
 
type Plans = {
  [key in PaymentOptions & 'free']: number
}
 
// Level of cost, used to determine if a user wants to falsly downgrade (yes could be an Enum but we don't want those due to TS shenanigans)
export const paymentPlans: Plans = {
  free: -1,
  single: 1,
  family: 5,
}