FeiShuMsgCardDTO.java 2.31 KB
package com.pipihelper.project.feishu.dto;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @description: some desc
 * @author: charles
 * @date: 2022/5/24 9:46 下午
 */
@Data
public class FeiShuMsgCardDTO {

    @JSONField(name = "config")
    private ConfigDTO config;
    @JSONField(name = "header")
    private HeaderDTO header;
    @JSONField(name = "elements")
    private List<ElementsDTO> elements;

    @Data
    public static class ConfigDTO {
        @JSONField(name = "wide_screen_mode")
        private Boolean wideScreenMode;
    }

    @Data
    public static class HeaderDTO {
        @JSONField(name = "title")
        private TitleDTO title;
        @JSONField(name = "template")
        private String template;

        @Data
        public static class TitleDTO {
            @JSONField(name = "tag")
            private String tag;
            @JSONField(name = "content")
            private String content;
        }
    }

    @Data
    public static class ElementsDTO {
        @JSONField(name = "tag")
        private String tag;
        @JSONField(name = "content")
        private String content;
        @JSONField(name = "actions")
        private List<ActionsDTO> actions;

        @Data
        public static class ActionsDTO {
            @JSONField(name = "tag")
            private String tag;
            @JSONField(name = "placeholder")
            private PlaceholderDTO placeholder;
            @JSONField(name = "options")
            private List<OptionsDTO> options;

            @Data
            public static class PlaceholderDTO {
                @JSONField(name = "tag")
                private String tag;
                @JSONField(name = "content")
                private String content;
            }

            @Data
            public static class OptionsDTO {
                @JSONField(name = "text")
                private TextDTO text;
                @JSONField(name = "value")
                private String value;

                @Data
                public static class TextDTO {
                    @JSONField(name = "tag")
                    private String tag;
                    @JSONField(name = "content")
                    private String content;
                }
            }
        }
    }
}