package com.slack.api.model.view;

import com.slack.api.model.block.composition.PlainTextObject;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Map;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ViewState {
    // block_id, action_id
    private Map<String, Map<String, Value>> values;

    /**
     * This class may miss some attributes.
     * If you find missing ones, let us know at https://github.com/seratch/jslack/issues
     */
    @Data
    public static class Value {
        private String type;
        private String value;
        private String selectedDate;
        private String selectedConversation;
        private String selectedChannel;
        private String selectedUser;
        private SelectedOption selectedOption;
        private List<String> selectedUsers;
    }

    @Data
    public static class SelectedOption {
        private PlainTextObject text;
        private String value;
    }
}

@@ -410,157 +410,8 @@
 s;%0A%0A
-    /**%0A     * This class may miss some attributes.%0A     * If you find missing ones, let us know at https://github.com/seratch/jslack/issues%0A     */%0A
     
@@ -750,20 +750,173 @@
 selected
-User
+Conversations;%0A        private List%3CString%3E selectedChannels;%0A        private List%3CString%3E selectedUsers;%0A        private List%3CSelectedOption%3E selectedOption
 s;%0A    %7D

Add missing fields in view.state.values