package de.frigosped.dc.model;

import java.time.LocalDateTime;

/**
 * DTO für den ORDS-Endpunkt GET /api/dc/projects/:project_id
 * (COLLECTION_ITEM – einzelnes JSON-Objekt, snake_case von ORDS)
 */
public class OrdsProject {

    private Long id;
    private String name;
    private String description;
    private Long catalogId;
    private Long createdByUser;
    private String status;          // PENDING | IN_PROGRESS | COMPLETED
    private Integer progress;       // 0–100
    private LocalDateTime completedAt;
    private String notificationEmail;
    private String notifyOk;           // 'Y' | 'N'
    private String notifyHinweis;      // 'Y' | 'N'
    private String notifyAbweichend;   // 'Y' | 'N'
    private Integer rowVersion;
    private LocalDateTime created;
    private LocalDateTime updated;

    public OrdsProject() {}

    public Long getId()                          { return id; }
    public void setId(Long id)                   { this.id = id; }

    public String getName()                      { return name; }
    public void setName(String name)             { this.name = name; }

    public String getDescription()               { return description; }
    public void setDescription(String d)         { this.description = d; }

    public Long getCatalogId()                   { return catalogId; }
    public void setCatalogId(Long catalogId)     { this.catalogId = catalogId; }

    public Long getCreatedByUser()               { return createdByUser; }
    public void setCreatedByUser(Long v)         { this.createdByUser = v; }

    public String getStatus()                    { return status; }
    public void setStatus(String status)         { this.status = status; }

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

    public LocalDateTime getCompletedAt()        { return completedAt; }
    public void setCompletedAt(LocalDateTime v)  { this.completedAt = v; }

    public String getNotificationEmail()         { return notificationEmail; }
    public void setNotificationEmail(String v)   { this.notificationEmail = v; }

    public String getNotifyOk()                  { return notifyOk; }
    public void setNotifyOk(String v)            { this.notifyOk = v; }

    public String getNotifyHinweis()             { return notifyHinweis; }
    public void setNotifyHinweis(String v)       { this.notifyHinweis = v; }

    public String getNotifyAbweichend()          { return notifyAbweichend; }
    public void setNotifyAbweichend(String v)    { this.notifyAbweichend = v; }

    public Integer getRowVersion()               { return rowVersion; }
    public void setRowVersion(Integer v)         { this.rowVersion = v; }

    public LocalDateTime getCreated()            { return created; }
    public void setCreated(LocalDateTime v)      { this.created = v; }

    public LocalDateTime getUpdated()            { return updated; }
    public void setUpdated(LocalDateTime v)      { this.updated = v; }
}
