package com.persagy.dmp.file.client;

import com.persagy.dmp.common.model.response.CommonResult;
import com.persagy.dmp.file.model.FileMd5;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 文件管理Client
 * @author Charlie Yu
 * @date 2021-05-15
 */
@FeignClient(name = "dmp-file", configuration = FileFeignConfig.class,path = "/file/md5/",url = "${persagy.bdtp.file.service:}")
public interface FileMd5Client {

    /**
     * 新增文件MD5信息
     * @param fileMd5 文件MD5信息
     * @return 文件MD5信息
     */
    @PostMapping("insert")
    CommonResult<FileMd5> insert(@RequestBody FileMd5 fileMd5);

    /**
     * 修改文件MD5信息
     * @param fileMd5 MD5信息
     * @return MD5信息
     */
    @PostMapping("update")
    CommonResult<FileMd5> update(@RequestBody FileMd5 fileMd5);

    /**
     * 删除文件MD5信息
     * @param id 文件MD5信息
     * @return 文件MD5信息
     */
    @PostMapping("delete")
    CommonResult<String> delete(@RequestBody String id);

    /**
     * 查询文件MD5信息
     * @param id 文件MD5信息
     * @return 文件MD5信息
     */
    @PostMapping("load")
    CommonResult<FileMd5> load(@RequestBody String id);
    /**
     * 查询文件MD5信息
     * @param md5 文件的md5
     * @return 文件MD5信息
     */
    @PostMapping("loadByMd5")
    CommonResult<FileMd5> loadByMd5(@RequestBody String md5);
    /**
     * 查询文件MD5信息
     * @param fileMd5 文件的md5
     * @return 文件MD5信息
     */
    @PostMapping("ensureFilePath")
    CommonResult<FileMd5> ensureFilePath(@RequestBody FileMd5 fileMd5);
}