package com.heyu.api.alibaba.handle.imageenhan;


import com.aliyun.imageenhan20190930.models.GenerateImageWithTextRequest;
import com.aliyun.imageenhan20190930.models.GenerateImageWithTextResponse;
import com.aliyun.teautil.models.RuntimeOptions;
import com.heyu.api.data.annotation.CustomPath;
import com.heyu.api.data.utils.StringUtils;
import com.heyu.api.alibaba.AlibabaBaseHandle;
import com.heyu.api.alibaba.request.imageenhan.AGenerateImageWithTextRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * https://next.api.aliyun.com/api/imageenhan/2019-09-30/ErasePerson?tab=DOC&lang=JAVA&RegionId=cn-shanghai
 * 擦除
 * <p>
 * 图像人体擦除
 * <p>
 * ErasePerson
 */
@Component
@Slf4j
@CustomPath("generateImageWithText")
public class AGenerateImageWithTextHandle extends AlibabaBaseHandle<AGenerateImageWithTextRequest, GenerateImageWithTextResponse> {
    @Autowired
    private com.aliyun.imageenhan20190930.Client client;

    @Override
    public String check(AGenerateImageWithTextRequest aGenerateImageWithTextRequest) {
        if (StringUtils.isBlank(aGenerateImageWithTextRequest.getText())) {
            return "text不能为空";
        }
        if (aGenerateImageWithTextRequest.getText().length() > 75) {
            return "text中文不超过75个字";
        }
        return null;
    }

    @Override
    public GenerateImageWithTextResponse run(AGenerateImageWithTextRequest aGenerateImageWithTextRequest, RuntimeOptions runtime) throws Exception {
        GenerateImageWithTextRequest generateImageWithTextRequest = new GenerateImageWithTextRequest();
        generateImageWithTextRequest.setText(aGenerateImageWithTextRequest.getText());
        generateImageWithTextRequest.setNumber(aGenerateImageWithTextRequest.getNumber());
        generateImageWithTextRequest.setResolution(aGenerateImageWithTextRequest.getResolution());
        // 复制代码运行请自行打印 API 的返回值
        return client.generateImageWithTextWithOptions(generateImageWithTextRequest, runtime);
    }
}
