package templates;

import definitions.annotations.*;
import definitions.types.*;

/**
 * 接口配置
 */
@SuppressWarnings("unused")
class TemplateV1 {

    public static class Enums {
        @AsBO
        @StringEnum
        enum IMMessageType {
            // 文本消息
            TIMTextElem,
            // 地理位置消息
            TIMLocationElem,
            // 表情消息
            TIMFaceElem,
            // 自定义消息，当接收方为 iOS 系统且应用处在后台时，此消息类型可携带除文本以外的字段到 APNs。一条组合消息中只能包含一个 TIMCustomElem
            // 自定义消息元素
            TIMCustomElem,
            // 语音消息。（服务端集成 Rest API 不支持发送该类消息）
            TIMSoundElem,
            // 图像消息。（服务端集成 Rest API 不支持发送该类消息）
            TIMImageElem,
            // 文件消息。（服务端集成 Rest API 不支持发送该类消息）
            TIMFileElem,
            // 视频消息。（服务端集成 Rest API 不支持发送该类消息）
            TIMVideoFileElem,
        }

        @AsBO
        enum FriendInvitationType {
            // 打招呼
            HELLO,
            // 爆照(已废除)
            PHOTO,
            // 心动问答
            ASKING,
            // 唱歌
            SINGING,
            // 走心一画
            DRAWING,
        }

        enum ChangePartner2NewType {
            /** 放弃 */
            TOLOW,
            /** 救活 */
            TONEW,
        }

        /**
         * 性别
         */
        enum Gender {
            /** 未知 */
            UNKONWN,
            /** 男 */
            MALE,
            /** 女 */
            FEMALE,
        }

        enum PartnerThumb {
            /** 不喜欢 */
            UNLIKE,
            /** 喜欢 */
            LIKE,
        }

        /**
         * 提醒ta完善信息通知type
         */
        enum RemindNoticeType {
            /**
             * 未定义
             */
            UNKONWN,
            /**
             * 信息流提醒
             */
            FLOW,
            /**
             * 我心动的
             */
            MYLIKE,
            /**
             * 心动我的
             */
            LIKEME
        }

    }

    public class Models {

        class ChangePartner2New {
            /** 卡片id */
            int partnerId;
            Enums.ChangePartner2NewType toType;
        }

        class Page {
            /** 总数 */
            int total;
            /** 页码 */
            int page;
            /** 页距 */
            int limit;
        }

        class GoodNightUser {
            // 获得的赞数
            int getLike;
            /** 创建时间 */
            int createdAt;
        }

        class AdminPartner {
            /** 卡片id */
            Integer id;
            /** uid */
            Integer uid;
            /** 照片地址 */
            @Optional
            String photo_src;
            @Optional
            String photo_1;
            @Optional
            String photo_2;
            @Optional
            String photo_3;
            @Optional
            String photo_4;

        }

        class Supvip {
            int supvipEndat;
        }

        class Banner {
            int isPraises;
            float charm;
            int count;
            int black;
        }

        class Black {
            @Optional
            String msy;
            @Optional
            String fpdx;
            @Optional
            String black;
            @Optional
            String chat;
            @Optional
            String night;
            @Optional
            String home;
            @Optional
            String account;
        }

        class FpdxProfile {
            // 用户标识
            int uid;
            // 性别
            Enums.Gender sex;
            // x性取向
            Enums.Gender sxo;
            // 首页滑动卡片的性别
            Enums.Gender feedSex;
            // 头像
            String headimgurl;
            // 昵称
            String nickname;
            // 金花数量
            float goldFlower;
            // 红花数量
            float redFlower;
            // 抽卡数量
            int ckCount;
            // 任务完成情况
            String task;
            // 身高
            int height;
            // 年龄
            String age;
            // 家乡
            String home;
            // 地址
            String address;
            // 交友卡片id
            int partnerId;
            @Optional
            String expect;
            String introduce;
            String phone;
            String school;
            String subject;
            String limit;
            int lastSign;
            String updatedAt;
            String createdAt;
            int signCon;
            int hiding;
            String star;
            String tag_1;
            String tag_2;
            String tag_3;
            String tag_4;
            int subscribeAt;
            String fpdxLike;
            String kfAccount;
            int rollback;
            String qq;
            String weixin;
            String education;
            int loginAt;
            @Optional
            String voice;
            int pairMinAge;
            int pairMaxAge;
            int pairProvince;
            int pairAll;
            String photoSrc;
            @Optional
            String photo_1;
            @Optional
            String photo_2;
            @Optional
            String photo_3;
            @Optional
            String photo_4;
            String fullUrlPhotoSrc;
            @Optional
            String fullUrlPhoto1;
            @Optional
            String fullUrlPhoto2;
            @Optional
            String fullUrlPhoto3;
            @Optional
            String fullUrlPhoto4;
            @Optional
            String lastLife;
            @Optional
            String why;
            @Optional
            String pairVoice;
            int jigsawAmount;
            @Optional
            String wxkf;
            @Optional
            String sign;
            boolean isAutoExpand;
            boolean onlyLast;
            float lng;
            float lat;
            String location;
            int feedDis;
            String identityAuth;
            int wxAuth;
            String workState;
            String claimTag;
            int lastLikemeLockAt;
            int beVipAt;
            int supvipEndat;
            boolean taskPhoto;
            boolean taskQuestion;
            boolean taskSing;
            boolean taskQuestionData;
            int logoffAt;
            int appLikeUnlockCount;
            String loginAppPlatform;
            int feedCnt;
            int feedLike;
            @Optional
            Integer bgcolor;
        }

        class ProfileUser {
            // 用户id
            int uid;
            // 性别
            @Optional
            Enums.Gender sex;
            // 性取向
            @Optional
            Enums.Gender sxo;
            // 首页筛选性别
            @Optional
            Enums.Gender feed_sex;
            // 头像
            @Optional
            String headimgurl;
            // 昵称
            @Optional
            String nickname;
            // 金花
            @Optional
            float gold_flower;
            // 红花
            @Optional
            float red_flower;
            // --
            @Optional
            int ck_count;
            // 任务完成情况
            String task;
            // 身高
            @Optional
            int height;
            // 出生年-月-日
            @Optional
            String age;
            // 家乡
            @Optional
            String home;
            // 地址
            @Optional
            String address;
            // 卡片id
            @Optional
            int partner_id;
            // 期望
            @Optional
            String expect;
            // 个人介绍
            @Optional
            String introduce;
            // 手机号
            @Optional
            String phone;
            // 学校
            @Optional
            String school;
            // todo 专业
            @Optional
            String subject;
            // todo
            @Optional
            String limit;
            // todo
            @Optional
            int last_sign;
            // todo
            @Optional
            int updated_at;
            // 创建时间
            @Optional
            String created_at;
            // 签到硬币
            @Optional
            int sign_con;
            // 屏蔽
            @Optional
            int hiding;
            // 星座
            @Optional
            String star;
            // 标签1
            @Optional
            String tag_1;
            // 标签2
            @Optional
            String tag_2;
            // 标签3
            @Optional
            String tag_3;
            // 标签4
            @Optional
            String tag_4;
            // 关注公众号领取小花的时间
            @Optional
            int subscribe_at;
            // todo
            @Optional
            String fpdx_like;
            // todo
            @Optional
            String kf_account;
            // todo
            @Optional
            int rollback;
            // qq
            @Optional
            String qq;
            // 微信
            @Optional
            String weixin;
            // todo
            @Optional
            String education;
            // 登录时间
            @Optional
            int login_at;
            // 语音
            @Optional
            String voice;
            // 照片
            @Optional
            String photo_src;
            // 照片
            @Optional
            String photo_1;
            // 照片
            @Optional
            String photo_2;
            // 照片
            @Optional
            String photo_3;
            // 照片
            @Optional
            String photo_4;
            // 照片
            @Optional
            String full_url_photo_src;
            // 照片
            @Optional
            String full_url_photo;
            // 照片
            @Optional
            String full_url_photo1;
            // 照片
            @Optional
            String full_url_photo2;
            // 照片
            @Optional
            String full_url_photo3;
            // 照片
            @Optional
            String full_url_photo4;
            // todo
            @Optional
            int pair_min_age;
            // todo
            @Optional
            int pair_max_age;
            // todo
            @Optional
            int pair_province;
            // todo
            @Optional
            int pair_all;
            // 最近生活状态
            @Optional
            String last_life;
            // todo
            @Optional
            String why;
            // todo
            @Optional
            String pair_voice;
            // --
            @Optional
            int jigsaw_amount;
            // --
            @Optional
            String wxkf;
            // --
            @Optional
            String sign;
            // todo
            @Optional
            int is_auto_expand;
            // todo
            @Optional
            int feed_dis;
            // todo
            @Optional
            int only_last;
            // 经度
            @Optional
            float lng;
            // 纬度
            @Optional
            float lat;
            // 定位
            @Optional
            String location;
            // 照片认证
            @Optional
            String identity_auth;
            // 微信认证
            @Optional
            int wx_auth;
            // --
            @Optional
            String work_state;
            // --
            @Optional
            String claim_tag;
            // --
            @Optional
            int last_likeme_lock_at;
            // --
            @Optional
            int app_like_unlock_count;
            // 成为普通会员时间
            @Optional
            int be_vip_at;
            // 超级会员到期时间
            @Optional
            int supvip_endat;
            // 注销时间
            @Optional
            int logoff_at;
            // --
            @Optional
            boolean task_photo;
            // --
            @Optional
            boolean task_question;
            // --
            @Optional
            boolean task_sing;
            // --
            @Optional
            boolean task_question_data;
            // 登录平台
            @Optional
            String login_app_platform;
            // 滑卡片次数
            int feed_cnt;
            // 滑卡片喜欢次数
            int feed_like;
            // 背景颜色
            @Optional
            int bgcolor;
            // im-account
            @Optional
            String im_account;
            // im-sig
            @Optional
            String im_sig;
            // 绑定分配对象服务号
            @Optional
            int bind_fpdxfwh;
            // --
            @Optional
            int lock_card;
            // --
            @Optional
            int app_sign_at;
            // --
            @Optional
            int course;
            // --
            @Optional
            String avatar;
            // --
            @Optional
            String birthday;
            // --
            @Optional
            Json supvip;
            // --
            @Optional
            Json black;
            // --
            @Optional
            Json banner;
            // --
            @Optional
            Json tags;
        }

        class ProfileUserSupvip {
            @Optional
            int supvip_endat;
            @Optional
            int supvip_days;
            @Optional
            int locklikeme_cnt;
        }

        class TimMessage {
            String fromAccount;
            String toAccount;
            int msgRandom;
            int msgTimeStamp;
            @DBField("seq")
            int msgSeq;
            Json content;
        }
    }

    class Controllers {

        /**
         * 用户信息相关
         */
        class User {
            // 用户信息
            @Methods({ MethodType.GET })
            class Profile {
                @Request
                @Optional
                String model;
                @Response
                Models.ProfileUser result;
            }

            /**
             * 原/api/msy/user&model=fpdx
             */
            @Methods({ MethodType.GET })
            class GetFpdxProfile {
                @Response
                Models.FpdxProfile user;

                @Response
                @Optional
                Models.Supvip supvip;

                @Response
                boolean bindFpdxfwh;

                @Response
                boolean lockCard;

                @Response
                Models.Banner banner;

                @Response
                Models.Black black;

                @Response
                int appSignAt;

                @Response
                int course;

                @Response
                Json tags;
            }

            /**
             * 更新用户信息
             * 
             * 这里参数和原来保持一致，只是文档中不会写
             */
            class UpdateProfile {
                @Response
                Json result;
            }

            /**
             * 切换个人标签
             */
            class ToggleTag {
                @Request
                int tagId;
                @Request
                int group;
            }

            /**
             * 创建个人交友卡片
             */
            class StoreSelfPartner {
                @Request
                @Optional
                String mediaId;

                @Response
                Json result;
            }

            /**
             * 获取问题列表
             */
            @Methods({ MethodType.GET })
            class getQuestionList {
                @Response
                Json result;
            }

            /**
             * 获取问题详情
             */
            @Methods({ MethodType.GET })
            class getQuestionInfo {
                @Request
                Integer questionId;
                @Response
                Json result;
            }

            /**
             * 获取我回答的问题
             */
            @Methods({ MethodType.GET })
            class getQuestionAnswerList {
                @Request
                @Optional
                Integer uid;
                @Response
                Json result;
            }

            /**
             * 回答个人问题
             * 
             * 除了questionId，其他参数保持原来规则
             */
            @Methods({ MethodType.POST })
            class CreateAnswer {
                @Request
                Integer questionId;
                @Request
                String content;
                @Response
                Json result;
            }

            /**
             * 删除照片
             */
            class DeletePhotos {
                @Request
                String field;
            }

            /**
             * 切换封面图
             */
            class SelectCover {
                @Request
                String field;
            }
        }

        /**
         * 卡片相关
         */
        class Partner {
            /**
             * 获取卡片用户信息
             */
            class GetPartnerUser {
                @Request
                @Optional
                /** 通过卡片搜索的卡片id */
                Integer partnerId;
                @Request
                @Optional
                /** 通过用户搜索的uid */
                Integer uid;

                @Response
                Json result;
            }

            /**
             * 点赞卡片
             */
            class ThumbPartner {
                /** 卡片id */
                @Request
                int partnerId;
                /** 点赞与否 */
                @Request
                Enums.PartnerThumb thumb;
                @Response
                Json result;
            }

            /**
             * 设置(开/关)隐藏卡片
             */
            @Methods({ MethodType.POST })
            class setPartnerSell {
                @Request
                Integer partner_id;
                @Request
                Boolean is_sell;
            }

            /**
             * 超级会员解锁 App解锁 解锁喜欢我的卡片
             */
            class LockLikeMe {
                @Request
                int partnerId;
                @Request
                @Optional
                String origin;
            }
        }

        /**
         * 签到相关接口
         */
        class SignIn {

            /**
             * 今日签到情况
             */
            @Methods({ MethodType.GET })
            class today {
                @Response
                Json result;
            }

            /**
             * 签到
             */
            @Methods({ MethodType.POST })
            class Sign {
                @Response
                Json result;
            }

            /**
             * 领取小花奖励
             */
            @Methods({ MethodType.POST })
            class rewardFlower {
                @Response
                Json result;
            }

            /**
             * 领取人气值奖励
             */
            @Methods({ MethodType.POST })
            class rewardPopularity {
                @Response
                Json result;
            }

            /**
             * 领取解锁次数
             */
            @Methods({ MethodType.POST })
            class rewardUnLookCard {
                @Response
                Json result;
            }

            /**
             * 领取超级会员满减券
             */
            @Methods({ MethodType.POST })
            class rewardSupVipCoupon {
                @Response
                Json result;
            }

            /**
             * 领取72小时报名打折券
             */
            @Methods({ MethodType.POST })
            class reward72DiscountCoupon {
                @Response
                Json result;
            }

            /**
             * 领取72小时报名入场券
             */
            @Methods({ MethodType.POST })
            class reward72PairCoupon {
                @Response
                Json result;
            }
        }

        /**
         * 好友列表相关
         */
        class Friend {
            /**
             * 申请列表
             */
            @Methods({ MethodType.GET })
            class GetApplyAllList {
                @Request
                @Optional
                int page;
                @Response
                Json result;
            }

            /**
             * 发出申请 列表
             */
            @Methods({ MethodType.GET })
            class GetApplySendList {
                @Request
                @Optional
                int page;
                @Response
                Json result;
            }

            /**
             * 收到的申请 列表
             */
            @Methods({ MethodType.GET })
            class GetApplyReceiveList {
                @Request
                @Optional
                int page;
                @Response
                Json result;
            }

            /**
             * 好友列表
             */
            @Methods({ MethodType.GET })
            class GetAllList {
                @Request
                @Optional
                int page;
                @Response
                Json result;
            }

            /**
             * 心动好友 列表
             */
            @Methods({ MethodType.GET })
            class GetEachLikeList {
                @Request
                @Optional
                int page;
                @Response
                Json result;
            }

            /**
             * 星标好友 列表
             */
            @Methods({ MethodType.GET })
            class GetStarList {
                @Request
                @Optional
                int page;
                @Response
                Json result;
            }

            /**
             * 好友交互历史|判断是否解锁
             */
            @Methods({ MethodType.GET })
            class GetChatHistory {
                @Request
                @Optional
                int page;
                @Request
                int friendUid;
                @Response
                Json result;
            }

            /**
             * 好友列表未读概览
             */
            @Methods({ MethodType.GET })
            class GetUnreadCount {
                @Response
                Json result;
            }

            /**
             * 同意好友申请
             */
            public class AgreeApply {
                /**
                 * 被同意的用户id
                 */
                @Request
                int applyUid;
            }
        }

        class DeedFriend {
            /**
             * 删除好友
             */
            class HideFriend {
                @Request
                int friendUid;
            }

            /**
             * 星标好友
             */
            class StarFriend {
                @Request
                int friendUid;
            }
        }

        class Payment {
            /**
             * 卡券列表
             */
            @Methods({ MethodType.GET })
            class GetCouponList {
                @Request
                @Optional
                String type;
                @Request
                @Optional
                String goodsScope;
                @Request
                @Optional
                int perPage;

                @Response
                Json result;
            }

            /**
             * 获取卡券信息
             */
            @Methods({ MethodType.GET })
            class GetCouponDetail {
                @Request
                int couponId;
                @Request
                @Optional
                int goodsId;

                @Response
                Json result;
            }

            /**
             * 获取微信支付参数
             */
            class FetchAppWechatPayParams {
                @Request
                int orderId;
                @Response
                Json result;
            }
        }

        /**
         * 72小时相关
         */
        class Pair {
            /**
             * 获取当前活动信息
             */
            @Methods({ MethodType.GET })
            class ActivityLast {
                @Request
                @Optional
                int activityType;
                @Response
                Json result;
            }

            /**
             * 获取我最后一次报名的数据
             */
            @Methods({ MethodType.GET })
            class ActivityRecent {
                @Response
                Json result;
            }

            /**
             * 通过期数获取匹配信息
             */
            @Methods({ MethodType.GET })
            class ActivityInfo {
                @Request
                int stageId;
                @Response
                Json result;
            }

            /**
             * 获取当前正在进行的活动
             */
            @Methods({ MethodType.GET })
            class GetActivityConductStageId {
                @Response
                Json result;
            }

            /**
             * 最近报名的列表
             */
            @Methods({ MethodType.GET })
            class Lastenroll {
                @Response
                Json result;
            }

            /**
             * 获取匹配列表
             */
            @Methods({ MethodType.GET })
            class GetActivityList {
                @Response
                Json result;
            }

            /**
             * 获取所有标签
             */
            @Methods({ MethodType.GET })
            class GetAllTags {
                @Response
                Json result;
            }

            /**
             * 免费报名
             */
            @Methods({ MethodType.POST })
            class EnrollFree {
                @Request
                @Optional
                Integer stageId;
                @Request
                @Optional
                String mediaId;
                @Request
                Integer state;
                @Request
                Integer score;
                @Request
                @Optional
                String activityType;
                @Request
                @Optional
                String allowPhoto;
                @Response
                Json result;
            }

            /**
             * 付费报名
             */
            @Methods({ MethodType.POST })
            class EnrollPro {
                /**
                 * 优惠券ID
                 */
                @Request
                @Optional
                Integer couponId;
                @Request
                @Optional
                Integer stageId;
                @Request
                @Optional
                String mediaId;
                @Request
                Integer totalFee;
                @Request
                Integer state;
                @Request
                Integer addScore;
                @Request
                @Optional
                String activityType;
                @Request
                @Optional
                String allowPhoto;
                @Response
                Json result;
            }

            /**
             * 报名下一期
             */
            @Methods({ MethodType.POST })
            class EnrollNext {
                @Request
                Integer lastStageId;
                @Request
                @Optional
                Integer allowPhoto;
                @Response
                Json result;
            }

            /**
             * 退款
             */
            @Methods({ MethodType.GET })
            class refund {
                @Request
                Integer pairId;
                @Response
                Json result;
            }

            /**
             * 通过小花提升72小时匹配成功率
             */
            @Methods({ MethodType.POST })
            class addScoreByFlower {
                @Request
                Integer pairId;
                @Request
                Integer redFlower;
                @Request
                Integer goldFlower;
                @Response
                Json result;
            }

            /**
             * 确认CP关系
             */
            @Methods({ MethodType.PUT })
            class confirmCp {
                @Request
                Integer pairId;
                @Request
                Integer confirm;
                @Response
                Json result;
            }

            /**
             * 反悔CP关系
             */
            @Methods({ MethodType.PUT })
            class regrets {
                @Request
                Integer pairId;
                @Response
                Json result;
            }

            /**
             * 操作日志
             */
            @Methods({ MethodType.POST })
            class operationalLog {
                @Request
                Integer stageId;
                @Request
                String type;
                @Request
                String content;
                @Response
                Json result;
            }

            /**
             * 确认落单
             */
            @Methods({ MethodType.POST })
            class confirmBeAlone {
                @Request
                Integer stageId;
                @Response
                Json result;
            }

            /**
             * 获取保持关系的房间
             */
            @Methods({ MethodType.GET })
            class GetKeepRoom {
                @Response
                Json result;
            }

            /**
             * 保持cp关系
             */
            @Methods({ MethodType.POST })
            class KeepCp {
                @Request
                Integer roomId;
                @Response
                Json result;
            }

            /**
             * 移除cp关系
             */
            @Methods({ MethodType.DELETE })
            class RemoveKeepCp {
                @Request
                Integer roomId;
                @Response
                Json result;
            }

            /**
             * 获取脱单群
             */
            @Methods({ MethodType.GET })
            class GetAloneGroup {
                /**
                 * 期数
                 */
                @Request
                @Optional
                Integer stageId;
                /**
                 * 获取类型(72h|qbj)【默认:72h】
                 */
                @Request
                @Optional
                String activityType;
                @Response
                Json result;
            }
        }

        class Invite {
            /**
             * 获取最近的邀请列表
             */
            @Methods({ MethodType.GET })
            class LastInvite {
                @Response
                Json result;
            }
        }

        class Share {
            /**
             * 获取匹配分享记录
             */
            class PairGet {
                @Request
                int listId;
                @Response
                Json result;
            }

            /**
             * 通过vip提升成功率 / 获取我邀请人的列表
             */
            class PairVipCheck {
                @Request
                int inviteId;
                @Response
                Json result;
            }

            /**
             * 获取解锁进度详情 详情-喜欢我的解锁
             */
            class LikeMe {
                @Request
                int praiseId;
                @Response
                Json result;
            }

            /**
             * 会员专属加成 助力-喜欢我的解锁分享
             */
            class LikeMeCheck {
                @Request
                int praiseId;
                @Response
                Json result;
            }

            /**
             * 助力历史接口
             */
            class LikeMeHistory {
                @Request
                int praiseId;
                @Response
                Json result;
            }
        }

        class Banner {
            /**
             * 获取某位置广告列表
             */
            class PositionList {
                @Request
                String position;
                @Response
                Json result;
            }
        }

        /**
         * 辅助接口
         */
        class Common {
            /**
             * 人脸识别
             */
            class FaceDetect {
                @Request
                String image;
                @Response
                Json result;
            }
        }

        /**
         * 高德地图接口 掉用量限制：https://lbs.amap.com/api/webservice/guide/tools/flowlevel
         * 高德错误码：https://lbs.amap.com/api/webservice/guide/tools/info
         */
        class Lbs {

            /**
             * ip定位 高德文档：https://lbs.amap.com/api/webservice/guide/api/ipconfig
             */
            @Methods({ MethodType.POST })
            class ip {
                /**
                 * 详看高德文档
                 */
                @Request
                Json parameters;
                /**
                 * 详看高德文档
                 */
                @Response
                Json data;
            }

            /**
             * 行政区域查询 高德文档：https://lbs.amap.com/api/webservice/guide/api/district
             */
            @Methods({ MethodType.POST })
            class district {
                /**
                 * 详看高德文档
                 */
                @Request
                Json parameters;
                /**
                 * 详看高德文档
                 */
                @Response
                Json data;
            }

            /**
             * 逆地理编码 高德文档：https://lbs.amap.com/api/webservice/guide/api/georegeo#regeo
             */
            @Methods({ MethodType.POST })
            class regeo {
                /**
                 * 详看高德文档
                 */
                @Request
                Json parameters;
                /**
                 * 详看高德文档
                 */
                @Response
                Json data;
            }

            /**
             * 地理编码 https://lbs.amap.com/api/webservice/guide/api/georegeo#geo
             */
            @Methods({ MethodType.POST })
            class geo {
                /**
                 * 详看高德文档
                 */
                @Request
                Json parameters;
                /**
                 * 详看高德文档
                 */
                @Response
                Json data;
            }
        }

        /**
         * 通知开关配置
         */
        class Notice {
            /**
             * 获取我的通知开关配置
             */
            @Methods({ MethodType.GET })
            class GetNoticeProfileList {
                @Response
                Json result;
            }

            /**
             * 获取通知开关配置
             */
            @Methods({ MethodType.GET })
            class GetNoticeByKeyToInt {
                /**
                 * 通知key
                 */
                @Request
                String key;
                @Response
                Json result;
            }

            /**
             * 修改通知开关配置
             */
            class UpdateNoticeByKey {
                /**
                 * 通知key
                 */
                @Request
                String key;
                /**
                 * 开关
                 */
                @Request
                @Optional
                boolean isOpen;
            }

            /**
             * 修改通知群组开关配置
             */
            class UpdateNoticeByGroup {
                /**
                 * 群组
                 */
                @Request
                String group;
                /**
                 * 开关
                 */
                @Request
                Boolean isOpen;
            }
        }

        class Homepage {
            /**
             * 发现页数据
             */
            @Methods({ MethodType.GET })
            class ActivityTimeTable {
                @Response
                Json result;
            }

            /**
             * 信息流
             */
            @Middleware("api.encrypt")
            class Feed {
                @Request
                @Optional
                int take;
                @Response
                Json result;
            }

            /**
             * 游客信息流
             */
            @Middleware("api.encrypt")
            class OpenidFeed {
                @Request
                String openid;
                @Request
                @Optional
                int take;
                @Response
                Json result;
            }

            /**
             * 获取卡片其他信息
             */
            class FeedScore {
                @Request
                int partnerId;
                @Response
                Json result;
            }
        }

        class UserNotice {
            @Methods({ MethodType.GET })
            class SysnoticeDesc {

                @Response
                Json result;
            }

            /**
             * 系统消息
             */
            @Methods({ MethodType.GET })
            class SysnoticeList {
                @Request
                @Optional
                int page;
                @Request
                int unread;
                @Response
                Json result;
            }
        }

        /**
         * 用户首页列表接口
         */
        class UserHome {

            /**
             * 获取心动我的列表
             */
            @Methods({ MethodType.GET })
            class GetLikeMeList {
                /**
                 * 分页(页数)
                 */
                @Request
                @Optional
                Integer page;
                /**
                 * 每页多少
                 */
                @Request
                @Optional
                Integer limit;
                @Response
                Json result;
            }

            /**
             * 获取我喜欢的列表
             */
            @Methods({ MethodType.GET })
            class getMyLikeList {
                /**
                 * 分页(页数)
                 */
                @Request
                @Optional
                Integer page;
                /**
                 * 每页多少
                 */
                @Request
                @Optional
                Integer limit;
                @Response
                Json result;
            }

            /**
             * 访客列表
             */
            class getVisitorList {
                /**
                 * 分页(页数)
                 */
                @Request
                @Optional
                Integer page;
                /**
                 * 每页多少
                 */
                @Request
                @Optional
                Integer limit;
                /**
                 * 用户id;不天默认取自己的
                 */
                @Request
                @Optional
                int uid;
                @Response
                Json result;
            }

            /**
             * 提醒TA补全信息
             */
            @Methods({ MethodType.POST })
            class remindComplementCard {
                @Request
                Integer remind_uid;
                @Request
                Enums.RemindNoticeType type;
            }

            /**
             * 获取人气值
             */
            class getPopularity {
                /** 分享助力到期时间 */
                int popularity_share_end_at;
                /** 签到助力到期时间 */
                int popularity_sign_end_at;
                /** 超级会员助力到期时间 */
                int popularity_supvip_endat;
                /** 人气值 */
                int popularity;
                /** 人气值基础分 */
                int base;
            }

        }

        class Tags {
            /**
             * 获取全部标签列表
             */
            class getAllTag {
                @Response
                Json result;
            }
        }

        /**
         * 城市相关接口
         *
         * 城市列表。搜索等等
         */
        class City {
            /**
             * 获取城市列表
             */
            @Methods({ MethodType.GET })
            class getList {
                @Response
                Json result;
            }

            /**
             * 搜索城市
             */
            @Methods({ MethodType.GET })
            class search {
                /**
                 * 关键词
                 */
                @Request
                String keyword;
                @Response
                Json result;
            }
        }

        /**
         * 学校相关接口
         *
         * 列表。搜索等等
         */
        class School {
            /**
             * 学校列表
             */
            @Methods({ MethodType.GET })
            class getList {
                @Request
                @Optional
                String keyword;
                @Response
                Json result;
            }
        }

        class AdminPartner {
            /**
             * 已精选列表
             */
            class isSelectedList {
                /** 页码 */
                @Request
                @Optional
                int pages;
                /** 是否只看可推流的:true=是;false=全部 */
                @Request
                @Optional
                Boolean isFeedPush;
                /** 性别 0=全部 */
                @Request
                @Optional
                Enums.Gender sex;
                @Response
                Models.Page page;
                Models.AdminPartner[] partners;
            }

            /**
             * 取消精选
             */
            class unSelectPartner {
                /** 卡片id */
                @Request
                @Optional
                int partnerId;
            }

            /**
             * 标记不推荐的列表
             */
            class lowList {
                /** 页码 */
                @Request
                @Optional
                int pages;
                @Response
                Models.Page page;
                Models.AdminPartner[] partners;
            }

            /**
             * 救活卡片
             */
            class change2New {
                /** 请求数据包 */
                @Request
                @Optional
                Models.ChangePartner2New[] req;
            }
        }

        class ReportLog {
            /**
             * 信息流上报日志
             */
            class feedLog {
                @Request
                int partnerId;
                @Request
                int uid;
                @Request
                Json data;
            }

            /**
             * 访问他人主页日志
             */
            public class ClickUserHome {
                /**
                 * 进入时间戳
                 */
                @Request
                int intoAt;
                /**
                 * 离开时间戳
                 */
                @Request
                int leaveAt;
                /**
                 * 访问用户
                 */
                @Request
                int clickUid;
                /**
                 * 被访问用户
                 */
                @Request
                int homeUid;
                /**
                 * 场景
                 */
                @Request
                int scene;
            }
        }

        /**
         * IM相关的接口
         *
         * 消息存在 腾讯云消息，本地消息，最近消息 超过七天未同步自己服务器消息，需要先拉最近消息 其他时候，刚进入时拉取腾讯云用户列表的消息
         * 如果有消息返回，重复拉取直到全部拉出 并且上报已读，以免未读消息被重复拉取
         *
         * 发消息时，先发送腾讯云，配置单聊消息回调可以自动上报自己的服务器，记录双方的最近消息 每次上报新消息时，保留自己的最近消息十条
         *
         *
         *
         * 暂时不确定定位消息是否使用seq，如果使用则必须先发送获取seq后上报
         */
        class Im {
            /**
             * 获取用户最近消息，最近10条
             *
             * 用户读列表时会依次从腾讯云获取聊天记录 不满10条的从这里读 不需要每次读，并且进入会话后不使用这个
             */
            class GetUsersLatests {
                @Request
                int[] uids;

                // 先全甩回去
                @Response
                Models.TimMessage[] messages;
            }

            /**
             * 发送消息
             *
             * 由服务端转接发送消息
             */
            class Send {
                @Request
                Models.TimMessage message;
            }

            /**
             * 撤回消息，删除两个人的最近消息
             */
            class Revoke {
                @Request
                Models.TimMessage message;
            }

            /**
             * 删除消息，删除自己的最近消息
             */
            class Delete {
                @Request
                Models.TimMessage message;
            }

            /**
             * 标记消息已读
             */
            class MarkUserMessagesRead {
                @Request
                Models.TimMessage message;
            }
        }

    }

}
