package com.sunyard.chsm.dto;

import com.sunyard.chsm.model.PageQuery;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author liulu
 * @since 2024/10/15
 */
public abstract class CryptoServiceDTO {

    @EqualsAndHashCode(callSuper = true)
    @Data
    public static class Query extends PageQuery {
        /**
         * 密码服务名称
         */
        private String name;
    }

    @Data
    public static class CSSave {
        /**
         * 密码服务Id
         */
        private Long id;
        /**
         * 密码服务名称
         */
        @NotBlank(message = "密码服务名称不能为空")
        private String name;
        /**
         * API功能项
         */
        @NotEmpty(message = "API功能不能为空")
        private List<String> apiList;
        /**
         * 设备组id
         */
        @NotNull(message = "设备组不能为空")
        private Long deviceGroupId;
        /**
         * 备注
         */
        private String remark;

    }

    @Data
    public static class CSView {

        /**
         * 密码服务Id
         */
        private Long id;
        /**
         * 密码服务名称
         */
        private String name;

        /**
         * 设备组id
         */
        private Long deviceGroupId;
        /**
         * 设备组名称
         */
        private String deviceGroupName;
        /**
         * 已分配API
         */
        private List<String> apiList;
        /**
         * API 描述
         */
        private String apiDesc;
        /**
         * 密码服务状态
         */
        private String status;
        /**
         * 密码服务状态描述
         */
        private String statusDesc;
        /**
         * 密码服务创建人id
         */
        private Long creatorId;
        /**
         * 备注
         */
        private String remark;
        /**
         * 密码服务创建时间
         */
        private LocalDateTime createTime;

    }

}
