package de.votian.services.dto;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

public class LonghaulDashboardDto {

    private boolean mediationActive;
    private int minimumDistanceKm;
    private int pendingCount;
    private int acceptedCount;
    private int returnCount;
    private boolean remoteDbAvailable;
    private boolean remoteDbActive;
    private Long effectiveHeadquartersId;
    private LocalDateTime generatedAt;
    private List<LonghaulJobRowDto> pendingJobs = new ArrayList<>();
    private List<LonghaulJobRowDto> acceptedJobs = new ArrayList<>();
    private List<LonghaulJobRowDto> returnJobs = new ArrayList<>();

    public boolean isMediationActive() {
        return mediationActive;
    }

    public void setMediationActive(boolean mediationActive) {
        this.mediationActive = mediationActive;
    }

    public int getMinimumDistanceKm() {
        return minimumDistanceKm;
    }

    public void setMinimumDistanceKm(int minimumDistanceKm) {
        this.minimumDistanceKm = minimumDistanceKm;
    }

    public int getPendingCount() {
        return pendingCount;
    }

    public void setPendingCount(int pendingCount) {
        this.pendingCount = pendingCount;
    }

    public int getAcceptedCount() {
        return acceptedCount;
    }

    public void setAcceptedCount(int acceptedCount) {
        this.acceptedCount = acceptedCount;
    }

    public int getReturnCount() {
        return returnCount;
    }

    public void setReturnCount(int returnCount) {
        this.returnCount = returnCount;
    }

    public boolean isRemoteDbAvailable() {
        return remoteDbAvailable;
    }

    public void setRemoteDbAvailable(boolean remoteDbAvailable) {
        this.remoteDbAvailable = remoteDbAvailable;
    }

    public boolean isRemoteDbActive() {
        return remoteDbActive;
    }

    public void setRemoteDbActive(boolean remoteDbActive) {
        this.remoteDbActive = remoteDbActive;
    }

    public Long getEffectiveHeadquartersId() {
        return effectiveHeadquartersId;
    }

    public void setEffectiveHeadquartersId(Long effectiveHeadquartersId) {
        this.effectiveHeadquartersId = effectiveHeadquartersId;
    }

    public LocalDateTime getGeneratedAt() {
        return generatedAt;
    }

    public void setGeneratedAt(LocalDateTime generatedAt) {
        this.generatedAt = generatedAt;
    }

    public List<LonghaulJobRowDto> getPendingJobs() {
        return pendingJobs;
    }

    public void setPendingJobs(List<LonghaulJobRowDto> pendingJobs) {
        this.pendingJobs = pendingJobs != null ? pendingJobs : new ArrayList<>();
    }

    public List<LonghaulJobRowDto> getAcceptedJobs() {
        return acceptedJobs;
    }

    public void setAcceptedJobs(List<LonghaulJobRowDto> acceptedJobs) {
        this.acceptedJobs = acceptedJobs != null ? acceptedJobs : new ArrayList<>();
    }

    public List<LonghaulJobRowDto> getReturnJobs() {
        return returnJobs;
    }

    public void setReturnJobs(List<LonghaulJobRowDto> returnJobs) {
        this.returnJobs = returnJobs != null ? returnJobs : new ArrayList<>();
    }
}
