package de.frigosped.dc.model;

/**
 * Request-Body für PUT /api/dc/projects/:id/progress
 *
 * Felder (alle optional – null = nicht aktualisieren):
 *   progress              0–100 Prozent
 *   currentPhase          OCR | QUESTIONS | COMPLETED
 *   currentDocId          ID des aktuell verarbeiteten Dokuments
 *   currentQuestionId     ID der aktuell ausgewerteten Frage (null bei OCR)
 *   estimatedCompletionAt ISO-8601-Zeitstempel (Schätzung Fertigstellung)
 *
 * Jackson serialisiert camelCase → snake_case (quarkus.jackson.property-naming-strategy=SNAKE_CASE).
 */
public class ProgressRequest {

    private Integer progress;
    private String currentPhase;
    private Long currentDocId;
    private Long currentQuestionId;
    private String estimatedCompletionAt;

    public ProgressRequest() {}

    public ProgressRequest(int progress) {
        this.progress = progress;
    }

    public ProgressRequest(int progress, String currentPhase, Long currentDocId,
                           Long currentQuestionId, String estimatedCompletionAt) {
        this.progress              = progress;
        this.currentPhase          = currentPhase;
        this.currentDocId          = currentDocId;
        this.currentQuestionId     = currentQuestionId;
        this.estimatedCompletionAt = estimatedCompletionAt;
    }

    public Integer getProgress()                    { return progress; }
    public void    setProgress(Integer v)           { this.progress = v; }

    public String  getCurrentPhase()                { return currentPhase; }
    public void    setCurrentPhase(String v)        { this.currentPhase = v; }

    public Long    getCurrentDocId()                { return currentDocId; }
    public void    setCurrentDocId(Long v)          { this.currentDocId = v; }

    public Long    getCurrentQuestionId()           { return currentQuestionId; }
    public void    setCurrentQuestionId(Long v)     { this.currentQuestionId = v; }

    public String  getEstimatedCompletionAt()       { return estimatedCompletionAt; }
    public void    setEstimatedCompletionAt(String v) { this.estimatedCompletionAt = v; }
}
