package com.narutohuo.xindazhou.push.model

import android.content.Context

/**
 * 推送服务配置模型
 * 
 * 封装极光推送的配置信息
 */
data class PushConfig(
    /**
     * 极光推送 AppKey（必填）
     */
    val appKey: String,
    
    /**
     * 极光推送渠道（可选，默认为 "developer-default"）
     */
    val channel: String = "developer-default",
    
    /**
     * 是否开启调试模式（可选，默认为 false）
     */
    val debugMode: Boolean = false
) {
    companion object {
        /**
         * 从资源文件读取配置
         * 
         * 需要在 strings.xml 中定义：
         * - push_jpush_app_key（必填）
         * - push_jpush_channel（可选，默认为 "developer-default"）
         * 
         * @param context Context 上下文
         * @return PushConfig 配置对象
         */
        fun fromResources(context: Context): PushConfig {
            val resources = context.resources
            val packageName = context.packageName
            
            // 从资源文件读取 AppKey
            val appKeyResId = resources.getIdentifier("push_jpush_app_key", "string", packageName)
            val appKey = if (appKeyResId != 0) {
                resources.getString(appKeyResId)
            } else {
                "" // 如果未配置，返回空字符串，后续会报错
            }
            
            // 从资源文件读取渠道（可选）
            val channelResId = resources.getIdentifier("push_jpush_channel", "string", packageName)
            val channel = if (channelResId != 0) {
                resources.getString(channelResId)
            } else {
                "developer-default"
            }
            
            return PushConfig(
                appKey = appKey,
                channel = channel,
                debugMode = false // 调试模式不从资源文件读取，由代码控制
            )
        }
    }
}

