// core/global-state-manager.js
(function () {
    'use strict';

    if (window.HerGlobalState) {
        return;
    }

    // 단일 전역 상태 관리자 - 모든 곳에서 이것만 사용
    window.HerGlobalState = {
        state: {
            isRecording: false,
            currentSessionId: null,
            currentContext: null,
            currentTabId: null
        },

        getState() {
            return { ...this.state };
        },

        setState(newState) {
            const oldState = { ...this.state };
            this.state = { ...this.state, ...newState };
        },

        // 핵심: 원자적 녹음 시작 (성공/실패 명확히)
        tryStartRecording(sessionId, context) {
            if (this.state.isRecording) {
                return false;
            }

            this.setState({
                isRecording: true,
                currentSessionId: sessionId,
                currentContext: context,
                currentTabId: context === 'content' ? 'current' : null
            });

            return true;
        },

        reset() {
            this.state = {
                isRecording: false,
                currentSessionId: null,
                currentContext: null,
                currentTabId: null
            };
        }
    };
})(); 