package org.sky.resource.rule.oss;

import org.sky.core.literule.annotation.LiteRuleComponent;
import org.sky.core.literule.core.RuleComponent;
import org.sky.core.oss.props.OssProperties;
import org.sky.core.oss.rule.KdOssRule;
import org.sky.resource.pojo.entity.Oss;
import org.sky.resource.rule.context.OssContext;

import static org.sky.resource.rule.constant.OssRuleConstant.OSS_DATA_RULE;

/**
 * OSS数据创建
 *
 */
@LiteRuleComponent(id = OSS_DATA_RULE, name = "OSS数据创建")
public class OssDataRule extends RuleComponent {
	@Override
	public void process() {
		OssContext contextBean = this.getContextBean(OssContext.class);
		Oss oss = contextBean.getOss();
		OssProperties ossProperties = contextBean.getOssProperties();
		// 若采用默认设置则开启多租户模式, 若是用户自定义oss则不开启
		if (oss.getEndpoint().equals(ossProperties.getEndpoint()) && oss.getAccessKey().equals(ossProperties.getAccessKey()) && ossProperties.getTenantMode()) {
			contextBean.setOssRule(new KdOssRule(Boolean.TRUE));
		} else {
			contextBean.setOssRule(new KdOssRule(Boolean.FALSE));
		}
	}
}
