package com.template.model.seewo;

import com.seewo.open.sdk.OpenApiParam;

/**
 * seewo-open API: 家长或老师发送留言给学生
 *
 *
 * @author auto create
 * @since 2.0.1 2023-12-19
 */
public class HomeSchoolServiceSendNoteToKidParam extends OpenApiParam {


    /**
     * 响应体，MimeType为 application/json
     */

    private RequestBody requestBody;


    public RequestBody getRequestBody() {
        return this.requestBody;
    }

    public void setRequestBody(RequestBody requestBody) {
        this.requestBody = requestBody;
    }

    public static HomeSchoolServiceSendNoteToKidParamBuilder builder(){
        return new HomeSchoolServiceSendNoteToKidParamBuilder();
    }

    public static class HomeSchoolServiceSendNoteToKidParamBuilder{
        private RequestBody requestBody;

        public HomeSchoolServiceSendNoteToKidParamBuilder requestBody(RequestBody requestBody){
            this.requestBody = requestBody;
            return this;
        }

        public HomeSchoolServiceSendNoteToKidParam build(){
            HomeSchoolServiceSendNoteToKidParam param = new HomeSchoolServiceSendNoteToKidParam();
            param.setRequestBody(requestBody);
            return param;
        }
    }

    public static class RequestBody {
        /**
         * query
         */
        private Query query;

        public Query getQuery() {
            return this.query;
        }

        public void setQuery(Query query) {
            this.query = query;
        }


        public static RequestBodyBuilder builder(){
            return new RequestBodyBuilder();
        }

        public static class RequestBodyBuilder{
            private Query query;

            public RequestBodyBuilder query(Query query){
                this.query = query;
                return this;
            }

            public RequestBody build(){
                RequestBody param = new RequestBody();
                param.setQuery(query);
                return param;
            }
        }
    }

    public static class Query {
        /**
         * appId
         */
        private String appId;
        /**
         * 学校ID
         */
        private String schoolUid;
        /**
         * 发送者手机号
         */
        private String senderPhone;
        /**
         * 接受者学号
         */
        private String studentCode;
        /**
         * 消息类型，留言类型：0、1文本，3语音，4图片，5表情，6贺卡
         */
        private Integer type;
        /**
         * 留言内容
         */
        private String content;
        /**
         * 语音，图片文件地址
         */
        private String resUrl;
        /**
         * 发送者手机号是否自动注册希沃帐号，0否，1是
         */
        private Integer autoRegister;
        /**
         * 语音长度，单位秒
         */
        private Integer voiceTime;

        public String getAppId() {
            return this.appId;
        }

        public void setAppId(String appId) {
            this.appId = appId;
        }

        public String getSchoolUid() {
            return this.schoolUid;
        }

        public void setSchoolUid(String schoolUid) {
            this.schoolUid = schoolUid;
        }

        public String getSenderPhone() {
            return this.senderPhone;
        }

        public void setSenderPhone(String senderPhone) {
            this.senderPhone = senderPhone;
        }

        public String getStudentCode() {
            return this.studentCode;
        }

        public void setStudentCode(String studentCode) {
            this.studentCode = studentCode;
        }

        public Integer getType() {
            return this.type;
        }

        public void setType(Integer type) {
            this.type = type;
        }

        public String getContent() {
            return this.content;
        }

        public void setContent(String content) {
            this.content = content;
        }

        public String getResUrl() {
            return this.resUrl;
        }

        public void setResUrl(String resUrl) {
            this.resUrl = resUrl;
        }

        public Integer getAutoRegister() {
            return this.autoRegister;
        }

        public void setAutoRegister(Integer autoRegister) {
            this.autoRegister = autoRegister;
        }

        public Integer getVoiceTime() {
            return this.voiceTime;
        }

        public void setVoiceTime(Integer voiceTime) {
            this.voiceTime = voiceTime;
        }


        public static QueryBuilder builder(){
            return new QueryBuilder();
        }

        public static class QueryBuilder{
            private String appId;
            private String schoolUid;
            private String senderPhone;
            private String studentCode;
            private Integer type;
            private String content;
            private String resUrl;
            private Integer autoRegister;
            private Integer voiceTime;

            public QueryBuilder appId(String appId){
                this.appId = appId;
                return this;
            }
            public QueryBuilder schoolUid(String schoolUid){
                this.schoolUid = schoolUid;
                return this;
            }
            public QueryBuilder senderPhone(String senderPhone){
                this.senderPhone = senderPhone;
                return this;
            }
            public QueryBuilder studentCode(String studentCode){
                this.studentCode = studentCode;
                return this;
            }
            public QueryBuilder type(Integer type){
                this.type = type;
                return this;
            }
            public QueryBuilder content(String content){
                this.content = content;
                return this;
            }
            public QueryBuilder resUrl(String resUrl){
                this.resUrl = resUrl;
                return this;
            }
            public QueryBuilder autoRegister(Integer autoRegister){
                this.autoRegister = autoRegister;
                return this;
            }
            public QueryBuilder voiceTime(Integer voiceTime){
                this.voiceTime = voiceTime;
                return this;
            }

            public Query build(){
                Query param = new Query();
                param.setAppId(appId);
                param.setSchoolUid(schoolUid);
                param.setSenderPhone(senderPhone);
                param.setStudentCode(studentCode);
                param.setType(type);
                param.setContent(content);
                param.setResUrl(resUrl);
                param.setAutoRegister(autoRegister);
                param.setVoiceTime(voiceTime);
                return param;
            }
        }
    }


}
