<?php

return [

    /*
     * 是否启用活动日志记录
     * 设为 false 则不将任何活动记录写入数据库
     */
    'enabled' => env('ACTIVITY_LOGGER_ENABLED', true),

    /*
     * 日志保留天数
     *
     * 依据《中华人民共和国网络安全法》第二十一条，网络日志留存不少于六个月（180天）。
     * 默认 365 天，满足合规要求。
     */
    'delete_records_older_than_days' => 365,

    /*
     * 默认日志名称
     */
    'default_log_name' => 'default',

    /*
     * 认证驱动
     * null 表示使用 Laravel 默认 auth 驱动
     */
    'default_auth_driver' => null,

    /*
     * 是否对软删除的主题仍返回关联模型
     */
    'subject_returns_soft_deleted_models' => false,

    /*
     * 活动日志模型
     * 必须实现 Kylin\Activity\Contracts\Activity 接口
     */
    'activity_model' => \Kylin\Activity\Models\Activity::class,

    /*
     * 日志表名
     */
    'table_name' => env('ACTIVITY_LOGGER_TABLE_NAME', 'activity_log'),

    /*
     * 数据库连接
     * null 表示使用 Laravel 默认连接
     */
    'database_connection' => env('ACTIVITY_LOGGER_DB_CONNECTION'),

    /*
     * 敏感字段脱敏配置
     *
     * 依据《个人信息保护法》第二十八条，不得在日志中记录敏感个人信息明文。
     * 匹配到的字段值将被替换为 [REDACTED]。
     */
    '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',
        'verification_code',
        'token',
        'api_key',
        'api_secret',
        'secret_key',
        'private_key',
        'access_token',
        'refresh_token',
        'session_id',
        'biometric',
        'fingerprint',
        'face_data',
        'health_info',
        'medical_record',
        'genetic',
    ],

    /*
     * 多租户配置
     *
     * 启用后，日志将自动关联当前租户 ID，实现租户间数据隔离。
     * tenant_field: 日志表中的租户 ID 字段名
     * tenant_resolver: 用于获取当前租户 ID 的回调类
     */
    'multi_tenant' => [
        'enabled' => env('ACTIVITY_LOGGER_MULTI_TENANT', false),
        'tenant_field' => 'tenant_id',
        'tenant_resolver' => null,
    ],

    /*
     * 日志防篡改
     *
     * 启用后，日志模型将禁止更新和删除操作（通过 Model 事件拦截）。
     * 仅允许通过 CleanActivitylogCommand 执行批量清理。
     */
    'immutable_logs' => env('ACTIVITY_LOGGER_IMMUTABLE', true),
];
