package com.ruoyi.credit.annotation;

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

/**
 * 加密字段注解
 * 用于标记需要加密存储的敏感字段
 * 
 * @author ruoyi
 * @date 2025-12-22
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface EncryptedField {
    
    /**
     * 加密算法
     * @return 加密算法名称
     */
    String algorithm() default "AES-256-GCM";
    
    /**
     * 是否必须加密
     * @return true表示必须加密，false表示可选
     */
    boolean required() default true;
    
    /**
     * 加密密钥ID
     * @return 密钥ID，用于密钥管理
     */
    String keyId() default "default";
}