package de.votian.services.dto;

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

public class TrackingDashboardDto {

    private Long headquartersId;
    private Long customerId;
    private LocalDate day;
    private boolean includeCompleted;
    private int totalJobs;
    private int assignedJobs;
    private int trackedJobs;
    private int totalCouriers;
    private int gpsCouriers;
    private int fallbackCouriers;
    private int unlocatedCouriers;
    private LocalDateTime generatedAt;
    private List<TrackingJobRowDto> jobs = new ArrayList<>();
    private List<TrackingCourierRowDto> couriers = new ArrayList<>();

    public Long getHeadquartersId() {
        return headquartersId;
    }

    public void setHeadquartersId(Long headquartersId) {
        this.headquartersId = headquartersId;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public LocalDate getDay() {
        return day;
    }

    public void setDay(LocalDate day) {
        this.day = day;
    }

    public boolean isIncludeCompleted() {
        return includeCompleted;
    }

    public void setIncludeCompleted(boolean includeCompleted) {
        this.includeCompleted = includeCompleted;
    }

    public int getTotalJobs() {
        return totalJobs;
    }

    public void setTotalJobs(int totalJobs) {
        this.totalJobs = totalJobs;
    }

    public int getAssignedJobs() {
        return assignedJobs;
    }

    public void setAssignedJobs(int assignedJobs) {
        this.assignedJobs = assignedJobs;
    }

    public int getTrackedJobs() {
        return trackedJobs;
    }

    public void setTrackedJobs(int trackedJobs) {
        this.trackedJobs = trackedJobs;
    }

    public int getTotalCouriers() {
        return totalCouriers;
    }

    public void setTotalCouriers(int totalCouriers) {
        this.totalCouriers = totalCouriers;
    }

    public int getGpsCouriers() {
        return gpsCouriers;
    }

    public void setGpsCouriers(int gpsCouriers) {
        this.gpsCouriers = gpsCouriers;
    }

    public int getFallbackCouriers() {
        return fallbackCouriers;
    }

    public void setFallbackCouriers(int fallbackCouriers) {
        this.fallbackCouriers = fallbackCouriers;
    }

    public int getUnlocatedCouriers() {
        return unlocatedCouriers;
    }

    public void setUnlocatedCouriers(int unlocatedCouriers) {
        this.unlocatedCouriers = unlocatedCouriers;
    }

    public LocalDateTime getGeneratedAt() {
        return generatedAt;
    }

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

    public List<TrackingJobRowDto> getJobs() {
        return jobs;
    }

    public void setJobs(List<TrackingJobRowDto> jobs) {
        this.jobs = jobs != null ? new ArrayList<>(jobs) : new ArrayList<>();
    }

    public List<TrackingCourierRowDto> getCouriers() {
        return couriers;
    }

    public void setCouriers(List<TrackingCourierRowDto> couriers) {
        this.couriers = couriers != null ? new ArrayList<>(couriers) : new ArrayList<>();
    }
}
