package com.bytesw.bytebot.bean;

import com.bytesw.bytebot.model.Agent;
import com.google.gson.annotations.Expose;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * @author Sebastian Chicoma Sandmann
 * @version 09-sep-2020
 *
 * Copyright (c) 2020 Byte, S.A. Todos los derechos reservados.
 *
 * Este software constituye información confidencial y propietaria de Byte, S.A.
 * ("Información Confidencial"). Usted no debe develar dicha Información
 * Confidencial y debe usarla de acuerdo con los términos de aceptación de
 * licencia de uso que firmó con Byte.
 */
@Getter @Setter
@ToString
public class AgentBean {

    @Expose
    private Long id;

    @Expose
    private String name;

    @Expose
    private String description;

    @Expose
    private String version;

    @Expose
    private String status;

    @Expose
    private Long countryId;

    @Expose
    private String countryName;

    @Expose
    private String timezone;

    @Expose
    private String avatar;

    @Expose
    private String language;

    @Expose
    private String type;

    @Expose
    private int period;

    @Expose
    private List<DeploymentChannelBean> deploymentChannels;

    @Expose
    private List<FrequentQuestionBean> frequentQuestions;

    public static AgentBean miniClone(Agent agent) {
        AgentBean bean = new AgentBean();

        bean.setId(agent.getId());
        bean.setName(agent.getName());
        bean.setVersion(agent.getVersion());
        bean.setStatus(agent.getStatus().getName());
        bean.setTimezone(agent.getTimezone());
        bean.setAvatar(agent.getAvatar());

        if (agent.getCountry() != null) {
            bean.setCountryName(agent.getCountry().getName());
        }


        return bean;
    }
}
