package com.malk.apigw.caller;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * 调用方档案（宜搭权限表 → 内存）
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CallerProfile {

    /** 调用方唯一 ID（如 caller-YDCBC-001） */
    private String callerId;

    /** HMAC 签名密钥（内存保留，日志脱敏） */
    private String callerSecret;

    /** 可读名称（审计用） */
    private String callerName;

    /** 允许调用的 action 白名单（vendor.action 精确匹配），如 ["dingtalk.user.get", "aliwork.form.save"] */
    private List<String> allowedActions;

    /** 每秒限流阈值 */
    private int rateLimit;

    /** 密钥过期时间 */
    private Date expireAt;

    /** 是否启用 */
    private boolean enabled;
}
