fi.evolver.ai.vaadin.ChatMessageCleaner Maven / Gradle / Ivy
package fi.evolver.ai.vaadin;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Component;
import fi.evolver.basics.spring.job.ResultState;
import fi.evolver.basics.spring.triggerable.AbstractTriggerable;
import fi.evolver.basics.spring.triggerable.TriggerableException;
import fi.evolver.utils.arg.Arg;
import fi.evolver.utils.arg.IntArg;
@Component
public class ChatMessageCleaner extends AbstractTriggerable {
private static final IntArg ARG_MAX_AGE_DAYS = new IntArg("MaxAgeDays");
private final ChatRepository chatRepository;
public ChatMessageCleaner(ChatRepository chatRepository) {
this.chatRepository = chatRepository;
}
@Override
protected ResultState run(Map args) throws TriggerableException {
int timeToLiveDays = ARG_MAX_AGE_DAYS.get(args);
int deletedCount = chatRepository.deleteByStartTimeLessThanAndFavorite(LocalDateTime.now().minusDays(timeToLiveDays), false);
LOG.debug("Deleted {} chat rows older than {} day(s) and not favorited", deletedCount, timeToLiveDays);
return ResultState.ok("Deleted %d chat rows".formatted(deletedCount));
}
@Override
public List> getArgs() {
return Arrays.asList(ARG_MAX_AGE_DAYS);
}
}