<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>디지털 굿판</title>
    
    <!-- PWA 메타 태그 -->
    <link rel="manifest" href="/static/manifest.json">
    <meta name="theme-color" content="#000000">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="apple-mobile-web-app-title" content="디지털 굿판">
    <link rel="apple-touch-icon" href="/static/icons/icon-152x152.png">
    
    <script>
        // 화면 꺼짐 방지
        async function preventSleep() {
            try {
                if ('wakeLock' in navigator) {
                    const wakeLock = await navigator.wakeLock.request('screen');
                    console.log('화면 켜짐 유지 활성화');
                    
                    // 화면이 다시 활성화될 때 wakeLock 재요청
                    document.addEventListener('visibilitychange', async () => {
                        if (document.visibilityState === 'visible') {
                            await preventSleep();
                        }
                    });
                }
            } catch (err) {
                console.log('화면 켜짐 유지 실패:', err);
            }
        }

        // 앱 상태 관리
        class AppState {
            static async save(state) {
                try {
                    localStorage.setItem('appState', JSON.stringify(state));
                } catch (err) {
                    console.error('상태 저장 실패:', err);
                }
            }

            static async load() {
                try {
                    const state = localStorage.getItem('appState');
                    return state ? JSON.parse(state) : null;
                } catch (err) {
                    console.error('상태 복원 실패:', err);
                    return null;
                }
            }
        }

        // 초기화
        window.addEventListener('load', async () => {
            // PWA 설치 확인
            if ('serviceWorker' in navigator) {
                try {
                    const registration = await navigator.serviceWorker.register('/static/service-worker.js');
                    console.log('ServiceWorker 등록 성공:', registration.scope);
                } catch (err) {
                    console.log('ServiceWorker 등록 실패:', err);
                }
            }

            // 화면 켜짐 유지
            await preventSleep();

            // 상태 복원
            const savedState = await AppState.load();
            if (savedState) {
                // Gradio 앱 상태 복원 로직
                window.gradioApp().querySelector('#component-0').value = savedState;
            }
        });

        // 상태 저장
        window.addEventListener('beforeunload', () => {
            const currentState = window.gradioApp().querySelector('#component-0').value;
            AppState.save(currentState);
        });
    </script>
</head>
<body>
    <div id="gradio-app"></div>
</body>
</html>