package com.genesys.workspace.models.targets.availability;

import com.genesys.workspace.models.AgentState;
import com.genesys.workspace.models.AgentWorkMode;

public class ChannelAvailability {
    private String channelName;
    private boolean available;
    private AgentState agentState;
    private AgentWorkMode agentWorkMode;
    private String reason;
    private String phoneNumber;
    private String switchName;
    private AgentActivity activity;

    public ChannelAvailability(
            String channelName,
            boolean available,
            AgentState agentState,
            AgentWorkMode agentWorkMode,
            String reason,
            String phoneNumber,
            String switchName,
            AgentActivity activity
    ) {
        this.channelName = channelName;
        this.available = available;
        this.agentState = agentState;
        this.agentWorkMode = agentWorkMode;
        this.reason = reason;
        this.phoneNumber = phoneNumber;
        this.switchName = switchName;
        this.activity = activity;
    }

    public String getChannelName() {
        return this.channelName;
    }

    public AgentState getAgentState() {
        return this.agentState;
    }

    public AgentWorkMode getAgentWorkMode() {
        return this.agentWorkMode;
    }

    public String getReason() {
        return this.reason;
    }

    public String getPhoneNumber() {
        return this.phoneNumber;
    }

    public String getSwitchName() {
        return this.getSwitchName();
    }

    public AgentActivity getActivity() {
        return this.activity;
    }

    @Override
    public String toString() {
        String str = "channelName [" + this.channelName +
                "] available [" + this.available +
                "] agentState [" + this.agentState +
                "] agentWorkMode [" + this.agentWorkMode +
                "] reason [" + this.reason +
                "] phoneNumber [" + this.phoneNumber +
                "] activity [" + this.activity + "]";
        return str;
    }
}

@@ -1117,21 +1117,16 @@
  return 
-this.
 channelN
@@ -1188,29 +1188,24 @@
      return 
-this.
 agentState;%0A
@@ -1272,21 +1272,16 @@
  return 
-this.
 agentWor
@@ -1341,21 +1341,16 @@
  return 
-this.
 reason;%0A
@@ -1408,21 +1408,16 @@
  return 
-this.
 phoneNum
@@ -1483,17 +1483,9 @@
 urn 
-this.getS
+s
 witc
@@ -1493,18 +1493,16 @@
 Name
-()
 ;%0A    %7D%0A
 %0A   
@@ -1489,32 +1489,36 @@
 itchName;%0A    %7D%0A
+    
 %0A    public Agen
@@ -1576,24 +1576,92 @@
 ity;%0A    %7D%0A%0A
+    public boolean isAvailable() %7B%0A        return available;%0A    %7D%0A%0A
     @Overrid
@@ -1732,21 +1732,16 @@
 me %5B%22 + 
-this.
 channelN
@@ -1780,21 +1780,16 @@
 le %5B%22 + 
-this.
 availabl
@@ -1823,29 +1823,24 @@
 tState %5B%22 + 
-this.
 agentState +
@@ -1878,21 +1878,16 @@
 de %5B%22 + 
-this.
 agentWor
@@ -1925,21 +1925,16 @@
 on %5B%22 + 
-this.
 reason +
@@ -1970,21 +1970,16 @@
 er %5B%22 + 
-this.
 phoneNum
@@ -2017,21 +2017,16 @@
 ty %5B%22 + 
-this.
 activity

fix recursion in ChannelsAvailability and cleanup