package com.css.txw.mhzc.api;

import com.css.ggzc.framework.common.pojo.CommonResult;
import com.css.txw.mhzc.constants.MhzcConstants;
import com.css.txw.mhzc.pojo.HtYhxxbDTO;
import com.css.txw.mhzc.pojo.QyrzReqDTO;
import com.css.txw.mhzc.pojo.YhxxReqDTO;
import com.css.txw.mhzc.pojo.YhxxbDTO;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

@FeignClient(name = MhzcConstants.NAME)
public interface IMhzcApi {

    String PREFIX = MhzcConstants.PREFIX + "/user";

    String QYRZ_PREFIX = MhzcConstants.PREFIX + "/company";

    @PostMapping(PREFIX+"/initSessionByYhuuid")
    @Operation(summary = "初始化用户信息")
    CommonResult<YhxxbDTO> initSessionByYhuuid(@RequestBody YhxxReqDTO reqDTO);

    @PostMapping(PREFIX+"/initSessionByDlzh")
    @Operation(summary = "初始化用户信息")
    CommonResult<YhxxbDTO> initSessionByDlzh(@RequestBody YhxxReqDTO reqDTO);

    @PostMapping(PREFIX+"/initHtSessionByYhuuid")
    @Operation(summary = "初始化用户信息")
    CommonResult<HtYhxxbDTO> initHtSessionByYhuuid(@RequestBody YhxxReqDTO reqDTO);

    @PostMapping(PREFIX+"/initHtSessionByDlzh")
    @Operation(summary = "初始化用户信息")
    CommonResult<HtYhxxbDTO> initHtSessionByDlzh(@RequestBody YhxxReqDTO reqDTO);

    @Operation(summary = "企业入驻",description = "企业入驻")
    @PostMapping(QYRZ_PREFIX+"/qyrz")
    CommonResult<String> qyrz(@RequestBody QyrzReqDTO reqDTO);

    @PostMapping(PREFIX+"/getAllUserId")
    @Operation(summary = "用户列表")
    CommonResult<List<String>> getAllUserId();
 
    @PostMapping(PREFIX+"/initSessionByDid")
	@Operation(summary = "初始化用户信息")
	CommonResult<YhxxbDTO> initSessionByDid(@RequestBody YhxxReqDTO reqDTO);
    
    @PostMapping(PREFIX+"/initSessionBySfzjhm")
	@Operation(summary = "根据身份证号初始化用户信息")
	CommonResult<YhxxbDTO> initSessionBySfzjhm(@RequestBody YhxxReqDTO reqDTO);
    
    @PostMapping(PREFIX+"/saveYhxxByDid")
	@Operation(summary = "保存did用户信息")
	CommonResult<YhxxbDTO> saveYhxxByDid(@RequestBody YhxxbDTO yhxx);
    
    @PostMapping(QYRZ_PREFIX+"/intQyxxByDid")
	@Operation(summary = "did企业认证信息")
	CommonResult<YhxxbDTO> intQyxxByDid(@RequestBody YhxxbDTO qyxx);

    @PostMapping(PREFIX+"/updateDid")
   	@Operation(summary = "更新用户did信息")
	CommonResult<YhxxbDTO> updateDid(@RequestBody YhxxbDTO yhxx);   

}
