# admin.py
from django.contrib import admin
from django.utils.safestring import mark_safe

from ..models.ratelimit import RateLimitConfig
from .mixins import SingletonAdminMixin


@admin.register(RateLimitConfig)
class RateLimitConfigAdmin(SingletonAdminMixin, admin.ModelAdmin):
    # readonly_fields = ('rate_key', )
    fieldsets = [
        ('功能控制', {
            'fields': ('switch', ),
            'description': '总控制开关，关闭后所有频率限制规则将失效'
        }),
        ('限制规则', {
            'fields': ('rate_key', 'rate_link'),
            'description': '配置频率限制的核心参数'
        }),
        ('频率设置', {
            'fields': (
                'global_rate',
                'home_rate',
                'category_rate',
                'item_rate',
                'tag_rate',
            ),
            'description':
            mark_safe('''
                <div class="alert alert-info">
                <p><strong>作用‌：</strong>设定请求频率阈值，格式为 <数量>/<时间单位>：</p>
                <dl>
                    <dd>'100/d'：每天100次</dd>
                    <dd>'10/s'：每秒10次</dd>
                    <dd>'1/m'：每分钟1次</dd>
                </dl>
                <p><strong>‌特殊值‌：</strong></p>
                <dl>
                    <dd>None：限流失效</dd>
                    <dd>'unlimited'：完全禁用限流‌</dd>
                </dl>
                
            </div>
            ''')
        }),
    ]
