Files
vac-optimizer/run_engine.ts
T

53 lines
1.7 KiB
TypeScript

import "@angular/compiler";
import { CalendarService, SelectedDates, DayType, SelectableDayType } from './src/app/services/calendar-service';
import { DateCacheService } from './src/app/services/date-cache.service';
import { RuleService } from './src/app/services/rule-service';
const cs = new CalendarService();
cs['dateCache'] = {
getTodayComponents: () => {
const d = new Date();
return { date: d.getDate(), month: d.getMonth(), year: d.getFullYear() };
}
} as any;
const sd = cs.getSelectedDatesForPeriod(new Date(), new Date(new Date().setFullYear(new Date().getFullYear() + 1)));
console.log("Selected dates length:", sd._datesSelected.length);
const rules = [
{
id: 'default-samedi-malin',
name: 'Samedi Malin',
type: 'if_then',
enabled: true,
dayOfWeek: 6,
placeDays: 2,
placeType: 'cp',
placement: 'auto',
rewardDays: 1,
rewardType: 'other'
},
{
id: 'default-christmas',
name: 'Vacances de Noël',
type: 'time_window',
enabled: true,
startDate: '2026-12-19T23:00:00.000Z',
endDate: '2027-01-02T23:00:00.000Z',
placeDays: 5,
placeType: 'any'
}
] as any;
const vacs = [
{ id: '1', type: 'cp', numberOfDays: 5, expiryDate: new Date(new Date().setFullYear(new Date().getFullYear() + 1)) },
{ id: '2', type: 'rtt', numberOfDays: 5, expiryDate: new Date(new Date().setFullYear(new Date().getFullYear() + 1)) },
];
sd.optimizeVacations(vacs, rules, cs, new Date(), new Date(new Date().setFullYear(new Date().getFullYear() + 1))).then(res => {
console.log("Remaining:", res);
const vacPlaced = sd._datesSelected.filter(d => ['cp', 'rtt', 'other'].includes(d.type as string));
console.log("Placed vacs:", vacPlaced.length);
});