File

apps/recallassess/recallassess-api/src/api/client/package/dto/package.dto.ts

Description

DTO for client-facing package data Maps PackageType enum to pricing information

Index

Properties

Properties

badge
Type : string
Decorators :
@Expose()
button_label
Type : string
Decorators :
@Expose()
color
Type : string
Decorators :
@Expose()
description
Type : string | null
Decorators :
@Expose()
features
Type : string[]
Decorators :
@Expose()
free_credits
Type : number | null
Decorators :
@Expose()
icon
Type : string
Decorators :
@Expose()
id
Type : number
Decorators :
@Expose()
is_trial_package
Type : boolean
Decorators :
@Expose()
license_count_end
Type : number
Decorators :
@Expose()
license_count_start
Type : number
Decorators :
@Expose()
minimum_license_required
Type : number
Decorators :
@Expose()
name
Type : string
Decorators :
@Expose()
package_type
Type : string
Decorators :
@Expose()
price_display
Type : string
Decorators :
@Expose()
price_per_licence
Type : number | null
Decorators :
@Expose()
price_prefix
Type : string
Decorators :
@Expose()
price_suffix
Type : string
Decorators :
@Expose()
sort_order
Type : number
Decorators :
@Expose()
trial_duration_days
Type : number | null
Decorators :
@Expose()
import { Exclude, Expose } from "class-transformer";

/**
 * DTO for client-facing package data
 * Maps PackageType enum to pricing information
 */
@Exclude()
export class CLPackageDto {
  @Expose()
  id!: number;

  @Expose()
  package_type!: string;

  @Expose()
  name!: string;

  @Expose()
  description!: string | null;

  @Expose()
  price_per_licence!: number | null;

  @Expose()
  license_count_start!: number;

  @Expose()
  license_count_end!: number;

  @Expose()
  minimum_license_required!: number;

  @Expose()
  is_trial_package!: boolean;

  @Expose()
  trial_duration_days!: number | null;

  @Expose()
  free_credits!: number | null; // Recall free credits

  @Expose()
  sort_order!: number;

  @Expose()
  color!: string; // Mapped from package_type

  @Expose()
  icon!: string; // Mapped from package_type

  @Expose()
  badge!: string; // Generated from license ranges

  @Expose()
  price_display!: string; // Formatted price

  @Expose()
  price_prefix!: string;

  @Expose()
  price_suffix!: string;

  @Expose()
  button_label!: string;

  @Expose()
  features!: string[]; // Will come from description or a separate field
}

results matching ""

    No results matching ""