// =============================================================================
// TudadaSDK Device Types
//
// 디바이스 관련 API 타입 정의 (Vibration, Keyboard, Clipboard)
// =============================================================================

using System;

namespace Tudada
{
    // ============================================================
    // Vibration API Types
    // ============================================================

    /// <summary>
    /// 진동 강도 타입
    /// </summary>
    public enum VibrateType
    {
        /// <summary>
        /// 강한 진동
        /// </summary>
        heavy,

        /// <summary>
        /// 중간 진동 (기본값)
        /// </summary>
        medium,

        /// <summary>
        /// 약한 진동
        /// </summary>
        light
    }

    /// <summary>
    /// 진동 실행 결과
    /// </summary>
    [Serializable]
    public class VibrateResult
    {
        /// <summary>
        /// 에러 메시지
        /// </summary>
        public string errMsg;

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

    // ============================================================
    // Keyboard API Types
    // ============================================================

    /// <summary>
    /// 키보드 확인 버튼 타입
    /// </summary>
    public enum KeyboardConfirmType
    {
        /// <summary>
        /// 완료
        /// </summary>
        done,

        /// <summary>
        /// 다음
        /// </summary>
        next,

        /// <summary>
        /// 검색
        /// </summary>
        search,

        /// <summary>
        /// 이동
        /// </summary>
        go,

        /// <summary>
        /// 전송
        /// </summary>
        send
    }

    /// <summary>
    /// 키보드 표시 결과
    /// </summary>
    [Serializable]
    public class ShowKeyboardResult
    {
        /// <summary>
        /// 에러 메시지
        /// </summary>
        public string errMsg;

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

    /// <summary>
    /// 키보드 숨김 결과
    /// </summary>
    [Serializable]
    public class HideKeyboardResult
    {
        /// <summary>
        /// 에러 메시지
        /// </summary>
        public string errMsg;

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

    // ============================================================
    // Clipboard API Types
    // ============================================================

    /// <summary>
    /// 클립보드 설정 결과
    /// </summary>
    [Serializable]
    public class SetClipboardDataResult
    {
        /// <summary>
        /// 에러 메시지
        /// </summary>
        public string errMsg;

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

    /// <summary>
    /// 클립보드 조회 결과
    /// </summary>
    [Serializable]
    public class GetClipboardDataResult
    {
        /// <summary>
        /// 에러 메시지
        /// </summary>
        public string errMsg;

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

        /// <summary>
        /// 클립보드 데이터
        /// </summary>
        public string data;
    }
}
