package com.wdkl.ncs.android.middleware.model.vo;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.wdkl.ncs.android.middleware.model.annotation.Column;
import com.wdkl.ncs.android.middleware.model.annotation.Id;

import java.io.Serializable;

import io.swagger.annotations.ApiModelProperty;

/**
 * @program nc
 * @description:
 * @author: Vothin
 * @create: 2021/04/02 15:27
 */
@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
public class InteractionVO implements Serializable {

    /**
     * id
     */
    @Column(name = "id")
    @ApiModelProperty(value = "id", required = false)
    @Id(name = "id")
    private Integer id;
    /**
     * 创建时间
     */
    @Column(name = "create_date")
    @ApiModelProperty(value = "创建时间", required = false)
    private Long createDate;
    /**
     * 科室Id
     */
    @Column(name = "part_id")
    @ApiModelProperty(value = "科室Id", required = false)
    private Integer partId;
    /**
     * 交互类型(1:语音通话,2:视频通话,3:卫生间紧急呼叫,4:语音留言,5:文本消息,6:按键事件)
     */
    @Column(name = "action_type")
    @ApiModelProperty(value = "交互类型(1:语音通话,2:视频通话,3:卫生间紧急呼叫,4:语音留言,5:文本消息,6:按键事件)", required = false)
    private String actionType;
    /**
     * SUCCESS、FAILED
     */
    @Column(name = "action_result")
    @ApiModelProperty(value = "0失败，1成功", required = false)
    private Integer actionResult;
    /**
     * 交互发起设备Id
     */
    @Column(name = "from_device_id")
    @ApiModelProperty(value = "交互发起设备Id", required = false)
    private Integer fromDeviceId;
    /**
     * 交互对象设备Id
     */
    @Column(name = "to_device_id")
    @ApiModelProperty(value = "交互对象设备Id", required = false)
    private Integer toDeviceId;
    /**
     * 发起设备所在空间结构
     */
    @Column(name = "from_device_frame_id")
    @ApiModelProperty(value = "发起设备所在空间结构", required = false)
    private Integer fromDeviceFrameId;
    /**
     * 交互对象所在空间结果
     */
    @Column(name = "to_device_frame_id")
    @ApiModelProperty(value = "交互对象所在空间结果", required = false)
    private Integer toDeviceFrameId;
    /**
     * 交互发起设备使用者member_id
     */
    @Column(name = "from_device_member_id")
    @ApiModelProperty(value = "交互发起设备使用者member_id", required = false)
    private Integer fromDeviceMemberId;
    /**
     * 交互对象设备使用者member_id
     */
    @Column(name = "to_device_member_id")
    @ApiModelProperty(value = "交互对象设备使用者member_id", required = false)
    private Integer toDeviceMemberId;
    /**
     * 交互开始时间(通话时指通话接通时间,与create_time相同)
     */
    @Column(name = "action_start")
    @ApiModelProperty(value = "交互开始时间(通话时指通话接通时间,与create_time相同)", required = false)
    private Long actionStart;
    /**
     * 应答时间
     */
    @Column(name = "action_accept")
    @ApiModelProperty(value = "应答时间", required = false)
    private Long actionAccept;
    /**
     * 交互结束时间(通话时指通话挂断时间,通话挂断后要更新此字段)。事件响应时间、语音已读时间
     */
    @Column(name = "action_end")
    @ApiModelProperty(value = "交互结束时间(通话时指通话挂断时间,通话挂断后要更新此字段)。事件响应时间、语音已读时间", required = false)
    private Long actionEnd;
    /**
     * 交互处理者的member_id
     */
    @Column(name = "action_end_member_id")
    @ApiModelProperty(value = "交互处理者的member_id", required = false)
    private Integer actionEndMemberId;
    /**
     * 交互数据(类型1,2,3为空)(类型4为音频文件地址)(5为文本内容)(类型6为具体按键类型)
     */
    @Column(name = "data")
    @ApiModelProperty(value = "交互数据(类型1,2,3为空)(类型4为音频文件地址)(5为文本内容)(类型6为具体按键类型)", required = false)
    private String data;

    @Column(name = "action_direction_type")
    @ApiModelProperty(value = "交互方向类型(1:分机到主机、腕表、医生机,2:主机、腕表、医生机到分机,3主机、腕表、医生机之间互通,4:分机到分机)",required = false)
    private Integer actionDirectionType;

    /** 用户 **/
    @Column(name = "from_customer_id")
    @ApiModelProperty(value = "发起端用户CustomId", required = false)
    private Integer fromCustomerId;

    @Column(name = "from_member_name")
    @ApiModelProperty(value = "发起端用户姓名", required = false)
    private String fromMemberName;

    @Column(name = "from_member_face")
    @ApiModelProperty(value = "发起端用户头像", required = false)
    private String fromMemberFace;

    @Column(name = "from_clerk_id")
    @ApiModelProperty(value = "发起端用户成员Id，发起端为护士主机，腕表，医生机时才有", required = false)
    private Integer fromClerkId;

    @Column(name = "from_role_name")
    @ApiModelProperty(value = "发起端用户角色名（医生、护士、护工）", required = false)
    private String fromRoleName;


    @Column(name = "to_customer_id")
    @ApiModelProperty(value = "目的端用户CustomId", required = false)
    private Integer toCustomerId;

    @Column(name = "to_member_name")
    @ApiModelProperty(value = "目的端用户姓名", required = false)
    private String toMemberName;

    @Column(name = "to_member_face")
    @ApiModelProperty(value = "目的端用户头像", required = false)
    private String toMemberFace;

    @Column(name = "to_clerk_id")
    @ApiModelProperty(value = "目的端用户成员Id，目的端为护士主机，腕表，医生机时才有", required = false)
    private Integer toClerkId;

    @Column(name = "to_role_name")
    @ApiModelProperty(value = "目的端用户角色名（医生、护士、护工）", required = false)
    private String toRoleName;


    /** 设备 **/
    @Column(name = "from_eth_mac")
    @ApiModelProperty(value = "发起端设备的有线以太网卡MAC地址", required = false)
    private String fromEthMac;

    @Column(name = "from_eth_ip")
    @ApiModelProperty(value = "发起端设备的有线以太网卡分配的IP地址", required = false)
    private String fromEthIp;


    @Column(name = "from_sip_id")
    @ApiModelProperty(value = "发起端设备的SIP账号", required = false)
    private String fromSipId;

    @Column(name = "from_device_type")
    @ApiModelProperty(value = "发起端设备的设备类型", required = false)
    private Integer fromDeviceType;

    @Column(name = "from_device_name")
    @ApiModelProperty(value = "发起端设备的名称", required = false)
    private String fromDeviceName;


    @Column(name = "to_eth_mac")
    @ApiModelProperty(value = "目的端设备的有线以太网卡MAC地址", required = false)
    private String toEthMac;

    @Column(name = "to_eth_ip")
    @ApiModelProperty(value = "目的端设备的有线以太网卡分配的IP地址", required = false)
    private String toEthIp;


    @Column(name = "to_sip_id")
    @ApiModelProperty(value = "目的端设备的SIP账号", required = false)
    private String toSipId;

    @Column(name = "to_device_type")
    @ApiModelProperty(value = "目的端设备的设备类型", required = false)
    private Integer toDeviceType;


    @Column(name = "to_device_name")
    @ApiModelProperty(value = "目的端设备的名称", required = false)
    private String toDeviceName;


    /** 空间结构 **/

    @Column(name = "from_frame_type")
    @ApiModelProperty(value = "发起端空间结构类型：0楼、1病房、2床位", required = false)
    private Integer fromFrameType;


    @Column(name = "from_frame_name")
    @ApiModelProperty(value = "发起端空间结构名称", required = false)
    private String fromFrameName;

    @Column(name = "from_frame_full_name")
    @ApiModelProperty(value = "发起端空间结构全名", required = false)
    private String fromFrameFullName;


    @Column(name = "to_frame_type")
    @ApiModelProperty(value = "目的端空间结构类型：0楼、1病房、2床位", required = false)
    private Integer toFrameType;


    @Column(name = "to_frame_name")
    @ApiModelProperty(value = "目的端空间结构名称", required = false)
    private String toFrameName;

    @Column(name = "to_frame_full_name")
    @ApiModelProperty(value = "发起端空间结构全名", required = false)
    private String toFrameFullName;


    @Column(name = "relative_id")
    @ApiModelProperty(value = "亲属id,外部来电时，from_member亲属的memberId", required = false)
    private Integer relativeId;

    @Column(name = "relative_name")
    @ApiModelProperty(value = "外部来电时，from_member亲属关系", required = false)
    private String relativeName;

    @Column(name = "action_end_member_name")
    @ApiModelProperty(value = "交互处理者的用户姓名", required = false)
    private String actionEndMemberName;




    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Long getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Long createDate) {
        this.createDate = createDate;
    }

    public Integer getPartId() {
        return partId;
    }

    public void setPartId(Integer partId) {
        this.partId = partId;
    }

    public String getActionType() {
        return actionType;
    }

    public void setActionType(String actionType) {
        this.actionType = actionType;
    }

    public Integer getActionResult() {
        return actionResult;
    }

    public void setActionResult(Integer actionResult) {
        this.actionResult = actionResult;
    }

    public Integer getFromDeviceId() {
        return fromDeviceId;
    }

    public void setFromDeviceId(Integer fromDeviceId) {
        this.fromDeviceId = fromDeviceId;
    }

    public Integer getToDeviceId() {
        return toDeviceId;
    }

    public void setToDeviceId(Integer toDeviceId) {
        this.toDeviceId = toDeviceId;
    }

    public Integer getFromDeviceFrameId() {
        return fromDeviceFrameId;
    }

    public void setFromDeviceFrameId(Integer fromDeviceFrameId) {
        this.fromDeviceFrameId = fromDeviceFrameId;
    }

    public Integer getToDeviceFrameId() {
        return toDeviceFrameId;
    }

    public void setToDeviceFrameId(Integer toDeviceFrameId) {
        this.toDeviceFrameId = toDeviceFrameId;
    }

    public Integer getFromDeviceMemberId() {
        return fromDeviceMemberId;
    }

    public void setFromDeviceMemberId(Integer fromDeviceMemberId) {
        this.fromDeviceMemberId = fromDeviceMemberId;
    }

    public Integer getToDeviceMemberId() {
        return toDeviceMemberId;
    }

    public void setToDeviceMemberId(Integer toDeviceMemberId) {
        this.toDeviceMemberId = toDeviceMemberId;
    }

    public Long getActionStart() {
        return actionStart;
    }

    public void setActionStart(Long actionStart) {
        this.actionStart = actionStart;
    }

    public Long getActionAccept() {
        return actionAccept;
    }

    public void setActionAccept(Long actionAccept) {
        this.actionAccept = actionAccept;
    }

    public Long getActionEnd() {
        return actionEnd;
    }

    public void setActionEnd(Long actionEnd) {
        this.actionEnd = actionEnd;
    }

    public Integer getActionEndMemberId() {
        return actionEndMemberId;
    }

    public void setActionEndMemberId(Integer actionEndMemberId) {
        this.actionEndMemberId = actionEndMemberId;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public Integer getActionDirectionType() {
        return actionDirectionType;
    }

    public void setActionDirectionType(Integer actionDirectionType) {
        this.actionDirectionType = actionDirectionType;
    }

    public Integer getFromCustomerId() {
        return fromCustomerId;
    }

    public void setFromCustomerId(Integer fromCustomerId) {
        this.fromCustomerId = fromCustomerId;
    }

    public String getFromMemberName() {
        return fromMemberName;
    }

    public void setFromMemberName(String fromMemberName) {
        this.fromMemberName = fromMemberName;
    }

    public String getFromMemberFace() {
        return fromMemberFace;
    }

    public void setFromMemberFace(String fromMemberFace) {
        this.fromMemberFace = fromMemberFace;
    }

    public Integer getFromClerkId() {
        return fromClerkId;
    }

    public void setFromClerkId(Integer fromClerkId) {
        this.fromClerkId = fromClerkId;
    }

    public String getFromRoleName() {
        return fromRoleName;
    }

    public void setFromRoleName(String fromRoleName) {
        this.fromRoleName = fromRoleName;
    }

    public Integer getToCustomerId() {
        return toCustomerId;
    }

    public void setToCustomerId(Integer toCustomerId) {
        this.toCustomerId = toCustomerId;
    }

    public String getToMemberName() {
        return toMemberName;
    }

    public void setToMemberName(String toMemberName) {
        this.toMemberName = toMemberName;
    }

    public String getToMemberFace() {
        return toMemberFace;
    }

    public void setToMemberFace(String toMemberFace) {
        this.toMemberFace = toMemberFace;
    }

    public Integer getToClerkId() {
        return toClerkId;
    }

    public void setToClerkId(Integer toClerkId) {
        this.toClerkId = toClerkId;
    }

    public String getToRoleName() {
        return toRoleName;
    }

    public void setToRoleName(String toRoleName) {
        this.toRoleName = toRoleName;
    }

    public String getFromEthMac() {
        return fromEthMac;
    }

    public void setFromEthMac(String fromEthMac) {
        this.fromEthMac = fromEthMac;
    }

    public String getFromEthIp() {
        return fromEthIp;
    }

    public void setFromEthIp(String fromEthIp) {
        this.fromEthIp = fromEthIp;
    }

    public String getFromSipId() {
        return fromSipId;
    }

    public void setFromSipId(String fromSipId) {
        this.fromSipId = fromSipId;
    }

    public Integer getFromDeviceType() {
        return fromDeviceType;
    }

    public void setFromDeviceType(Integer fromDeviceType) {
        this.fromDeviceType = fromDeviceType;
    }

    public String getFromDeviceName() {
        return fromDeviceName;
    }

    public void setFromDeviceName(String fromDeviceName) {
        this.fromDeviceName = fromDeviceName;
    }

    public String getToEthMac() {
        return toEthMac;
    }

    public void setToEthMac(String toEthMac) {
        this.toEthMac = toEthMac;
    }

    public String getToEthIp() {
        return toEthIp;
    }

    public void setToEthIp(String toEthIp) {
        this.toEthIp = toEthIp;
    }

    public String getToSipId() {
        return toSipId;
    }

    public void setToSipId(String toSipId) {
        this.toSipId = toSipId;
    }

    public Integer getToDeviceType() {
        return toDeviceType;
    }

    public void setToDeviceType(Integer toDeviceType) {
        this.toDeviceType = toDeviceType;
    }

    public String getToDeviceName() {
        return toDeviceName;
    }

    public void setToDeviceName(String toDeviceName) {
        this.toDeviceName = toDeviceName;
    }

    public Integer getFromFrameType() {
        return fromFrameType;
    }

    public void setFromFrameType(Integer fromFrameType) {
        this.fromFrameType = fromFrameType;
    }

    public String getFromFrameName() {
        return fromFrameName;
    }

    public void setFromFrameName(String fromFrameName) {
        this.fromFrameName = fromFrameName;
    }

    public String getFromFrameFullName() {
        return fromFrameFullName;
    }

    public void setFromFrameFullName(String fromFrameFullName) {
        this.fromFrameFullName = fromFrameFullName;
    }

    public Integer getToFrameType() {
        return toFrameType;
    }

    public void setToFrameType(Integer toFrameType) {
        this.toFrameType = toFrameType;
    }

    public String getToFrameName() {
        return toFrameName;
    }

    public void setToFrameName(String toFrameName) {
        this.toFrameName = toFrameName;
    }

    public String getToFrameFullName() {
        return toFrameFullName;
    }

    public void setToFrameFullName(String toFrameFullName) {
        this.toFrameFullName = toFrameFullName;
    }

    public Integer getRelativeId() {
        return relativeId;
    }

    public void setRelativeId(Integer relativeId) {
        this.relativeId = relativeId;
    }

    public String getRelativeName() {
        return relativeName;
    }

    public void setRelativeName(String relativeName) {
        this.relativeName = relativeName;
    }

    public String getActionEndMemberName() {
        return actionEndMemberName;
    }

    public void setActionEndMemberName(String actionEndMemberName) {
        this.actionEndMemberName = actionEndMemberName;
    }
}
