//
//  PPCDThemeConfig.h
//  PPCashDeskSDK
//
//  Created by Claude on 2026/04/03.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

/// 显示模式
typedef NS_ENUM(NSInteger, PPCDDisplayMode) {
    PPCDDisplayModeLight = 0,  // 强制浅色
    PPCDDisplayModeDark = 1,   // 强制深色
    PPCDDisplayModeAuto = 2    // 跟随系统
};

/// 圆角样式
typedef NS_ENUM(NSInteger, PPCDBorderRadius) {
    PPCDBorderRadiusSquare = 0,   // 方角 (0px)
    PPCDBorderRadiusRounded = 1,  // 标准 (4px)
    PPCDBorderRadiusFull = 2      // 全圆角
};

/// 商户样式配置（从接口 JSON 解析）
///
/// 本期支持的字段：
/// - display_mode: 显示模式 (light/dark/auto)
/// - color_brand: 品牌色 (#RRGGBB 格式)
/// - box_border_radius: 输入框圆角样式 (square/rounded/full)
/// - font_family: 字体系列 (auto 或具体字体名)
@interface PPCDThemeConfig : NSObject

#pragma mark - 显示模式

/// 显示模式（light/dark/auto）- 字段名: display_mode
@property (nonatomic, assign) PPCDDisplayMode display_mode;

#pragma mark - 颜色配置

/// 品牌色（#RRGGBB 格式）- 字段名: color_brand
@property (nonatomic, copy, nullable) NSString *color_brand;

#pragma mark - 形状配置

/// 输入框和卡片列表项圆角样式 - 字段名: box_border_radius
@property (nonatomic, assign) PPCDBorderRadius box_border_radius;

#pragma mark - 字体配置

/// 字体系列（auto 或具体字体名）- 字段名: font_family
@property (nonatomic, copy, nullable) NSString *font_family;

#pragma mark - 工厂方法

/// SDK 默认配置（兜底值）
///
/// 默认值说明：
/// - display_mode: light（强制亮色，暂不支持 auto 和 dark）
/// - color_brand: #1A83F7（PP 默认品牌色）
/// - box_border_radius: rounded（标准 4px）
/// - font_family: nil（auto，系统默认）
///
/// @return 默认主题配置对象
+ (instancetype)defaultConfig;

/// 从接口 JSON 字典解析配置
/// @param jsonDictionary JSON 字典
/// @return 主题配置对象
+ (instancetype)configWithJSONDictionary:(NSDictionary *)jsonDictionary;

@end

NS_ASSUME_NONNULL_END
