package com.template.model.seewo;

import java.util.*;
import com.seewo.open.sdk.OpenApiParam;
import com.seewo.open.sdk.ParameterPosition;

/**
 * seewo-open API: 保存第三方上传的人脸图片
 *
 *
 * @author auto create
 * @since 2.0.1 2024-4-17
 */
public class PhotoServiceSavePhotosParam extends OpenApiParam {


    /**
     * 请求体，MimeType为 application/json
     */

    private JSONRequestBody requestBody;


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

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

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

    public static class PhotoServiceSavePhotosParamBuilder{
        private JSONRequestBody requestBody;

        public PhotoServiceSavePhotosParamBuilder requestBody(JSONRequestBody requestBody){
            this.requestBody = requestBody;
            return this;
        }

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

    public static class JSONRequestBody {
        /**
         *
         */
        private ThirdSavePhotoBatchQuery query;

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

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


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

        public static class JSONRequestBodyBuilder{
            private ThirdSavePhotoBatchQuery query;

            public JSONRequestBodyBuilder query(ThirdSavePhotoBatchQuery query){
                this.query = query;
                return this;
            }

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

    public static class ThirdSavePhotoBatchQuery {
        /**
         *
         */
        private String appId;
        /**
         *  希沃机构uid
         */
        private String unitUid;
        /**
         *  用户类型，0学生，1老师
         */
        private Integer userType;
        /**
         *  图片保存列表
         */
        private List<ThirdSavePhotoQuery> photoList;

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

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

        public String getUnitUid() {
            return this.unitUid;
        }

        public void setUnitUid(String unitUid) {
            this.unitUid = unitUid;
        }

        public Integer getUserType() {
            return this.userType;
        }

        public void setUserType(Integer userType) {
            this.userType = userType;
        }

        public List<ThirdSavePhotoQuery> getPhotoList() {
            return this.photoList;
        }

        public void setPhotoList(List<ThirdSavePhotoQuery> photoList) {
            this.photoList = photoList;
        }


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

        public static class ThirdSavePhotoBatchQueryBuilder{
            private String appId;
            private String unitUid;
            private Integer userType;
            private List<ThirdSavePhotoQuery> photoList;

            public ThirdSavePhotoBatchQueryBuilder appId(String appId){
                this.appId = appId;
                return this;
            }
            public ThirdSavePhotoBatchQueryBuilder unitUid(String unitUid){
                this.unitUid = unitUid;
                return this;
            }
            public ThirdSavePhotoBatchQueryBuilder userType(Integer userType){
                this.userType = userType;
                return this;
            }
            public ThirdSavePhotoBatchQueryBuilder photoList(List<ThirdSavePhotoQuery> photoList){
                this.photoList = photoList;
                return this;
            }

            public ThirdSavePhotoBatchQuery build(){
                ThirdSavePhotoBatchQuery param = new ThirdSavePhotoBatchQuery();
                param.setAppId(appId);
                param.setUnitUid(unitUid);
                param.setUserType(userType);
                param.setPhotoList(photoList);
                return param;
            }
        }
    }

    public static class ThirdSavePhotoQuery {
        /**
         *  学生学号，老师手机号
         */
        private String userCode;
        /**
         *  用户图片地址
         */
        private String photoUrl;

        public String getUserCode() {
            return this.userCode;
        }

        public void setUserCode(String userCode) {
            this.userCode = userCode;
        }

        public String getPhotoUrl() {
            return this.photoUrl;
        }

        public void setPhotoUrl(String photoUrl) {
            this.photoUrl = photoUrl;
        }


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

        public static class ThirdSavePhotoQueryBuilder{
            private String userCode;
            private String photoUrl;

            public ThirdSavePhotoQueryBuilder userCode(String userCode){
                this.userCode = userCode;
                return this;
            }
            public ThirdSavePhotoQueryBuilder photoUrl(String photoUrl){
                this.photoUrl = photoUrl;
                return this;
            }

            public ThirdSavePhotoQuery build(){
                ThirdSavePhotoQuery param = new ThirdSavePhotoQuery();
                param.setUserCode(userCode);
                param.setPhotoUrl(photoUrl);
                return param;
            }
        }
    }


}
