package com.hzs.common.core.annotation;

import com.hzs.common.core.constant.LanguageConstants;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Description: 翻译拦截注解
 * Author: jiang chao
 * Time: 2022/8/31 10:13
 * Classname: Transaction
 * PackageName: com.hzs.common.core.annotation
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Transaction {

    /**
     * 是否强制国际化处理（true=是，false=否）
     *
     * @return
     */
    boolean isForce() default true;

    /**
     * 是否来源缓存（true=是，false=否）
     *
     * @return
     */
    boolean isCache() default true;

    /**
     * 翻译规则前缀
     *
     * @return
     */
    String transactionKey() default "";

    /**
     * 是否当前字段取值（true=是，false=否）
     *
     * @return
     */
    boolean isValue() default true;

    /**
     * 默认业务表翻译数据字段（当 isValue = false 时，此值作为缓存取值字段）
     *
     * @return
     */
    String valueField() default LanguageConstants.DEFAULT_TRANSACTION_FIELD;

}
