22 lines
850 B
TypeScript
22 lines
850 B
TypeScript
/** 가상매매 투자대상 목록 최대 개수 (설정 · gc_app_settings.virtual_target_max_count) */
|
|
|
|
export const DEFAULT_VIRTUAL_TARGET_MAX = 20;
|
|
export const MIN_VIRTUAL_TARGET_MAX = 1;
|
|
export const MAX_VIRTUAL_TARGET_MAX = 100;
|
|
|
|
export function clampVirtualTargetMax(n: number): number {
|
|
if (!Number.isFinite(n)) return DEFAULT_VIRTUAL_TARGET_MAX;
|
|
return Math.min(MAX_VIRTUAL_TARGET_MAX, Math.max(MIN_VIRTUAL_TARGET_MAX, Math.floor(n)));
|
|
}
|
|
|
|
export function virtualTargetLimitMessage(max: number): string {
|
|
return `투자대상은 최대 ${max}종목까지 등록할 수 있습니다. 설정 › 가상매매에서 한도를 확인하세요.`;
|
|
}
|
|
|
|
export function isVirtualTargetAddAllowed(
|
|
currentCount: number,
|
|
maxCount: number = DEFAULT_VIRTUAL_TARGET_MAX,
|
|
): boolean {
|
|
return currentCount < clampVirtualTargetMax(maxCount);
|
|
}
|