<?php

namespace Kylin\AntiAddiction\Enums;

/**
 * 限制类型枚举
 *
 * 描述防沉迷系统可能施加的各种限制类型：
 * - time_slot:    时段限制（未成年人仅限特定时段游戏）
 * - duration:     时长限制（未成年人每日游戏时长上限）
 * - spending:     消费限额（未成年人充值金额限制）
 * - unverified:   未实名限制（禁止游戏）
 * - curfew:       宵禁限制（夜间禁止游戏）
 */
enum RestrictionType: string
{
    case TimeSlot = 'time_slot';
    case Duration = 'duration';
    case Spending = 'spending';
    case Unverified = 'unverified';
    case Curfew = 'curfew';

    /**
     * 中文标签
     */
    public function label(): string
    {
        return match ($this) {
            self::TimeSlot => '时段限制',
            self::Duration => '时长限制',
            self::Spending => '消费限额',
            self::Unverified => '未实名限制',
            self::Curfew => '宵禁限制',
        };
    }

    /**
     * 限制描述（面向用户的提示语）
     */
    public function description(): string
    {
        return match ($this) {
            self::TimeSlot => '根据国家新闻出版署规定，未成年人仅可在周五、周六、周日和法定节假日每日20时至21时使用游戏服务',
            self::Duration => '根据国家新闻出版署规定，未成年人每日游戏时长不超过1小时',
            self::Spending => '根据《关于防止未成年人沉迷网络游戏的通知》，未成年人充值金额受到限制：未满8周岁禁止充值；8-15周岁单次≤50元、月累计≤200元；16-17周岁单次≤100元、月累计≤400元',
            self::Unverified => '根据国家新闻出版署规定，所有网络游戏用户必须使用真实有效身份信息进行账号注册和登录，未实名用户不可使用游戏服务',
            self::Curfew => '当前为未成年人禁止游戏时段（每日22时至次日8时）',
        };
    }
}
