package com.caliverse.admin.scheduler.config;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.LocalTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ScheduleExecutionConfig {
    private String taskId;
    private LocalDateTime startTime;
    private LocalDateTime endTime;
    private Duration interval;
    private Integer repeatCount;
    private String cronExpression;
    private LocalTime dailyExecutionTime;

    @Builder.Default
    private boolean processMissedExecutions = false;

    private MissedExecutionConfig missedExecutionConfig;
}
