package com.ttstd.controller.network.model;

import com.google.gson.annotations.SerializedName;

/** 绑定关系条目，对应服务端 {@code ClientController#bindingView}。 */
public class BindingItem {

    @SerializedName("bindingId")
    private String bindingId;

    /** 被控端设备唯一标识，即连接时的目标设备 ID。 */
    @SerializedName("deviceUid")
    private String deviceUid;

    @SerializedName("userId")
    private String userId;

    /** OWNER / MEMBER。 */
    @SerializedName("role")
    private String role;

    @SerializedName("alias")
    private String alias;

    /** ACTIVE / REVOKED。 */
    @SerializedName("status")
    private String status;

    /** 被控端当前是否在线（信令网络中存在活跃会话）。 */
    @SerializedName("online")
    private boolean online;

    public String getBindingId() {
        return bindingId;
    }

    public String getDeviceUid() {
        return deviceUid;
    }

    public String getUserId() {
        return userId;
    }

    public String getRole() {
        return role;
    }

    public String getAlias() {
        return alias;
    }

    public String getStatus() {
        return status;
    }

    public boolean isOnline() {
        return online;
    }

    /** 下拉展示文案：有别名时优先展示别名。 */
    public String displayName() {
        if (alias != null && !alias.trim().isEmpty()) {
            return alias + " (" + deviceUid + ")";
        }
        return deviceUid;
    }
}
