import { appConfig } from '../../core/config/config.js';
import { SCHEDULING_DEFAULTS } from '../../core/constants/index.js';
/**
* Scheduler Utilities
*/
export class SchedulerUtil {
/**
* Calculate next publish date (default: tomorrow at configured time)
*/
getNextPublishDate(daysOffset: number = SCHEDULING_DEFAULTS.DEFAULT_DAYS_BETWEEN_POSTS): Date {
const date = new Date();
date.setDate(date.getDate() + daysOffset);
const publishTime = appConfig.getDefaultPublishTime();
date.setHours(publishTime.hour, publishTime.minute, 0, 0);
return date;
}
/**
* Check if publish date is within tolerance
*/
isTimeToPublish(publishDate: Date, toleranceMs: number = 60000): boolean {
const now = new Date();
return publishDate <= now && (now.getTime() - publishDate.getTime()) < toleranceMs;
}
}
// Export singleton instance
export const schedulerUtil = new SchedulerUtil();