package com.djhk.common.api;


import com.djhk.common.api.domain.PoliceInfo;
import com.djhk.common.api.domain.SysPoliceFly;
import com.djhk.common.api.domain.to.*;
import com.djhk.common.core.domain.AjaxResult;
import com.djhk.common.core.domain.R;
import org.springframework.web.bind.annotation.*;

//@FeignClient(contextId = "remoteSpaceFlightService", value = ServiceNameConstants.SPACE_SERVICE, fallbackFactory = RemoteSpaceFlightFallbackFactory.class)
public interface RemoteSpaceFlightService
{
    /**
     * 用户注册
     * @param userTo
     * @return
     */
    @PostMapping("/user/auth/register")
    public R registerUser(@RequestBody UserTo userTo);

    /**
     * 绑定组织用户关系
     * @param userTo
     * @return
     */
    @PostMapping("/organ/save")
    public R saveUserOrgan(@RequestBody OrganUserTo userTo);

    /**
     * 删除用户组织
     * @param orginDelTo
     * @return
     */
    @PostMapping("/organ/delUserOrgan")
    public R delOrganUser(@RequestBody OrginDelTo orginDelTo);

    /**
     * 删除组织
     * @param ids
     * @return
     */
    @DeleteMapping("/organ")
    public R delOrgan(@RequestParam("ids") Long[] ids);

    @PostMapping("/organ/saveOrgan")
    public R saveOrgan(@RequestBody OrganTo organTo);

    /**
     * 用户修改
     * @param userTo
     * @return
     */
    @PostMapping("/user/edit")
    public R userUpdateByUserId(@RequestBody UserUpdateTo userTo);

    /**
     * 用户修改密码
     * @param userTo
     * @return
     */
    @PostMapping("/user/updatePass")
    public R updatePass(@RequestBody UserPassTo userTo);

    /**
     * 用户注销
     * @param userId
     * @return
     */
    @DeleteMapping("/user/deleteUser")
    public R deleteUser(@RequestParam("userId") Long userId);

    @GetMapping("/user/deleteBatchUser")
    public R deleteBatchUser(@RequestParam("userIds") Long[] userIds);

    @PostMapping("/user/resetPass")
    public R userResetPass(@RequestParam("userId") Long userId,@RequestParam("password") String password);

    @GetMapping("/remote/sms/send")
    public R<String> sendSms(@RequestParam("phoneNo") String phoneNo,@RequestParam("templateCodeIndex") String templateCodeIndex);

    @PostMapping("/user/recoverPwd")
    R recoverPwd(@RequestParam("userId") Long userId, @RequestParam("password") String password);


    /**
     * 设置三维模型上传文件Id
     * @param modelId
     * @param sysFileId
     * @return
     */
    @PostMapping("/model/setUploadFileId")
    public R modelUpload(@RequestParam("modelId") Long modelId,@RequestParam("sysFileId") Long sysFileId);

    /**
     * 设置三维模型路径
     * @param modelId
     * @param path
     * @return
     */
    @PostMapping("/model/deployUpload")
    public R modelDeploy(@RequestParam("modelId") Long modelId,@RequestParam("path") String path);

    /**
     * 设置三维模型路径状态
     * @param modelId
     * @return
     */
    @PostMapping("/model/deployUploading")
    public R modelDeploying(@RequestParam("modelId") Long modelId,@RequestParam("path") String dealSts);

    /**
     * 新增警员信息
     * @param sysPoliceFly
     * @return
     */
    @PostMapping("/sysPolice")
    public R addSysPolice(@RequestBody SysPoliceFly sysPoliceFly);
    @PostMapping("/policeinfo")
    public AjaxResult insertPoliceInfo(@RequestBody PoliceInfo policeInfo);
}
