/**
 * 문서 편집 헬퍼 유틸리티
 */

/**
 * 마지막 줄의 번호 매기기 패턴을 감지하여 다음 접두사를 반환한다.
 * (음성 녹음 삽입 시 스마트 번호 매기기)
 */
export function detectNextNumbering(content: string): string {
    if (!content || !content.trim()) return '1. ';
    const lines = content.split('\n');
    let lastLine = '';
    for (let i = lines.length - 1; i >= 0; i--) {
        if (lines[i].trim()) {
            lastLine = lines[i];
            break;
        }
    }
    if (!lastLine) return '\n\n';
    const match = lastLine.match(/^(\s*)((?:\d+[\.)\-])+\d*[\.)]?|[-*])(\s*)/);
    if (match) {
        const indent = match[1];
        const marker = match[2];
        const space = match[3] || ' ';
        const isPending = lastLine.trim() === marker.trim();
        if (isPending) return '';
        if (marker === '-' || marker === '*') {
            return `\n${indent}${marker}${space}`;
        } else {
            const separator = marker.match(/[^\d]+$/)?.[0] || '.';
            const cleanMarker = marker.replace(/[^\d.]+$/g, '');
            const parts = cleanMarker.split('.').map(p => parseInt(p, 10)).filter(n => !isNaN(n));
            if (parts.length > 0) {
                parts[parts.length - 1]++;
                const newMarker = parts.join('.') + separator;
                return `\n${indent}${newMarker}${space}`;
            }
        }
    }
    return '\n\n';
}

/**
 * 마크다운 본문에서 첫 번째 이미지의 Drive ID를 추출한다.
 */
export function extractCoverImageId(content: string): string | null {
    const imageRegex = /!\[.*?\]\((.*?)\)/;
    const match = content.match(imageRegex);
    if (!match) return null;
    const url = match[1];
    if (!url) return null;
    const driveRegex = /[-\w]{25,}/;
    try {
        if (url.includes('drive.google.com')) {
            const idMatch = url.match(driveRegex);
            if (idMatch) return idMatch[0];
        } else if (url.includes('/api/drive-image/')) {
            const parts = url.split('/api/drive-image/');
            if (parts.length > 1) return parts[1].split('?')[0];
        }
    } catch (e) {
        console.warn('Failed to extract image ID', e);
    }
    return null;
}
