public VaccinationSchedule generate()

in use-cases/vaccination-scheduling/src/main/java/org/acme/vaccinationscheduler/bootstrap/DemoDataGenerator.java [89:112]


    public VaccinationSchedule generate(int vaccinationCenterCount, int totalBoothCount, double pinnedAppointmentRatio) {
        Random random = new Random(17);
        LocalDate windowStartDate = LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.MONDAY));
        int windowDaysLength = 5;
        LocalTime dayStartTime = LocalTime.of(9, 0);
        int injectionsPerBoothPerTimeslot = 4;
        int timeslotsPerBoothPerDay = (int) HOURS.between(dayStartTime, LocalTime.of(17, 0));

        List<VaccineType> vaccineTypeList = generateVaccineTypeList();
        List<VaccinationCenter> vaccinationCenterList = generateVaccinationCenterList(
                random, vaccinationCenterCount);
        List<Appointment> appointmentList = generateAppointmentList(random,
                windowStartDate, windowDaysLength, dayStartTime, totalBoothCount,
                injectionsPerBoothPerTimeslot, timeslotsPerBoothPerDay,
                vaccineTypeList, vaccinationCenterList);
        List<Person> personList = generatePersonList(random,
                windowStartDate, windowDaysLength, pinnedAppointmentRatio,
                vaccineTypeList, vaccinationCenterList, appointmentList);

        logger.info("Generated dataset with {} appointments and {} persons.",
                appointmentList.size(),
                personList.size());
        return new VaccinationSchedule(vaccineTypeList, vaccinationCenterList, appointmentList, personList);
    }