<?php

return [

    /*
     * 数据库表名
     */
    'table' => 'kylin_audit_logs',

    /*
     * 是否启用审计日志
     */
    'enabled' => env('KYLIN_AUDIT_ENABLED', true),

    /*
     * 排除的事件类型
     */
    'exclude_events' => ['retrieved', 'replicating'],

    /*
     * 排除的模型类
     */
    'exclude_models' => [],

    /*
     * 日志保留天数
     *
     * 依据《网络安全法》第二十一条，网络日志留存不少于 180 天。
     * 默认 365 天。
     */
    'keep_days' => env('KYLIN_AUDIT_KEEP_DAYS', 365),

    /*
     * 敏感字段脱敏配置
     *
     * 依据《个人信息保护法》第二十八条，不得在审计日志中记录敏感个人信息明文。
     */
    'sensitive_fields' => [
        'password',
        'password_confirmation',
        'old_password',
        'new_password',
        'id_card',
        'id_card_number',
        'id_number',
        'bank_card',
        'bank_account',
        'bank_card_number',
        'credit_card',
        'card_number',
        'cvv',
        'cvc',
        'security_code',
        'token',
        'api_key',
        'api_secret',
        'secret_key',
        'private_key',
        'access_token',
        'refresh_token',
    ],

    /*
     * 审计日志防篡改
     *
     * 依据等保 2.0 (GB/T 22239)，审计记录不可修改或删除。
     * 启用后，审计日志禁止更新和删除操作。
     */
    'immutable' => env('KYLIN_AUDIT_IMMUTABLE', true),

    /*
     * 多租户支持
     */
    'multi_tenant' => [
        'enabled' => env('KYLIN_AUDIT_MULTI_TENANT', false),
        'tenant_field' => 'tenant_id',
    ],
];
