w-lab-app/src/shared/utils/period-conversion.ts
dev.daminik00 cc17190405 fix text
2025-10-19 02:27:41 +02:00

38 lines
955 B
TypeScript

import { PeriodType } from "@/types/period";
/**
* Converts a period to total number of days
* @param interval - Number of periods (e.g., 2 weeks = interval 2)
* @param period - Type of period (DAY, WEEK, MONTH, YEAR)
* @returns Total number of days
*/
export function convertPeriodToDays(
interval: number,
period: PeriodType
): number {
const daysPerPeriod: Record<PeriodType, number> = {
DAY: 1,
WEEK: 7,
MONTH: 30, // Average month length
YEAR: 365,
};
return interval * daysPerPeriod[period];
}
/**
* Calculates price per day based on total price and billing period
* @param price - Total price for the period
* @param interval - Number of periods
* @param period - Type of period
* @returns Price per one day
*/
export function calculatePricePerDay(
price: number,
interval: number,
period: PeriodType
): number {
const totalDays = convertPeriodToDays(interval, period);
return price / totalDays;
}