apps/recallassess/recallassess-api/src/api/client/package/dto/package.dto.ts
DTO for client-facing package data Maps PackageType enum to pricing information
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
}