// =============================================================================
// TudadaSDK Lifecycle Types
//
// 라이프사이클 관련 API 타입 정의 (ExitMiniProgram, RestartMiniProgram, LaunchOptions)
// =============================================================================

using System;

namespace Tudada
{

    /// <summary>
    /// 미니프로그램 종료 결과
    /// </summary>
    [Serializable]
    public class ExitMiniProgramResult
    {
        /// <summary>
        /// 에러 메시지
        /// </summary>
        public string errMsg;

        /// <summary>
        /// 에러 코드
        /// </summary>
        public int errCode;
    }

    /// <summary>
    /// 미니프로그램 재시작 결과
    /// </summary>
    [Serializable]
    public class RestartMiniProgramResult
    {
        /// <summary>
        /// 에러 메시지
        /// </summary>
        public string errMsg;

        /// <summary>
        /// 에러 코드
        /// </summary>
        public int errCode;
    }

    /// <summary>
    /// 리퍼러 정보
    /// </summary>
    [Serializable]
    public class LaunchOptionsReferrerInfo
    {
        /// <summary>
        /// 추가 데이터 (JSON 문자열)
        /// </summary>
        public string extraData;
    }

    /// <summary>
    /// 런치 옵션 정보
    /// </summary>
    [Serializable]
    public class TudadaLaunchOptions
    {
        /// <summary>
        /// URL 쿼리 파라미터 (JSON 문자열)
        /// JsonUtility는 Dictionary를 지원하지 않으므로 JSON 문자열로 제공됩니다.
        /// 사용 시 JsonUtility 또는 서드파티 JSON 라이브러리로 파싱하세요.
        /// </summary>
        public string query;

        /// <summary>
        /// 리퍼러 정보 (공유 링크 등)
        /// </summary>
        public LaunchOptionsReferrerInfo referrerInfo;
    }
}
