idea-toolbox
Version:
IDEA's utility functions
94 lines (93 loc) • 2.2 kB
TypeScript
import { Resource } from './resource.model';
import { Label } from './label.model';
import { Languages } from './languages.model';
/**
* Expressed in months (WEEK is an exception, with value 0).
*/
export declare enum ProjectPlanDurations {
WEEK = 0,
MONTH_1 = 1,
MONTH_2 = 2,
MONTH_3 = 3,
MONTH_6 = 6,
YEAR_1 = 12,
LIFETIME = 9999
}
export declare enum ProjectPlatforms {
WEB = "web",
IOS = "ios",
ANDROID = "android",
MACOS = "macos",
WINDOWS = "windows"
}
export declare enum ProjectPlanTargets {
USERS = "users",
TEAMS = "teams"
}
/**
* Table: `idea_projects_plans`.
*
* Indexes:
* - `project-order-index` (LSI, all).
*/
export declare class ProjectPlan extends Resource {
/**
* Project / product key.
*/
project: string;
/**
* The id of the project plan.
*/
planId: string;
/**
* The id of the plan in the stores (aka Product ID).
*/
storePlanId: string;
/**
* The price, based on the currency set.
*/
price: number;
/**
* The currency ISO code: EUR, USD, etc.
*/
currency: string;
/**
* The currency symbol: €, $, etc.
*/
currencySymbol: string;
/**
* The string version of the price, with the currency symbol concatenated.
*/
priceStr: string;
/**
* The plan duration.
*/
duration: ProjectPlanDurations;
/**
* The platforms in which the plan is enabled (and therefore visible).
*/
platforms: ProjectPlatforms[];
/**
* The title of the plan, in various languages.
*/
title: Label;
/**
* The description of the plan, in various languages.
*/
description: Label;
/**
* Order with which to sort the plan when shown.
*/
order: number;
/**
* If true, the plan is an anomaly and it needs to be threaded in special ways.
*/
special: boolean;
/**
* The plan targets: USERS, TEAMS.
*/
target: ProjectPlanTargets;
load(x: any, languages?: Languages): void;
safeLoad(newData: any, safeData: any, languages?: Languages): void;
validate(languages?: Languages): string[];
}