def format_data(document):
    max_blocks = 500
    max_text_size = 1000
    max_image_size = 10**10
    max_images = 4
    blocks = []
    current_block = {
        'text': '',
        'images': []
    }
    for page in document['pages']:
        # Récupération du texte et des images de la page
        page_text = page.get('text', '')
        page_images = page.get('images', [])

        if (len(current_block['text'] + page_text) > max_text_size) or (len(current_block['images'] + page_images) > max_images):
            if current_block['text']: # On vérifie que le block n'est pas vide
                blocks.append(current_block)
                # Réinitialisation pour nouveau block
                current_block = {
                    'text': '',
                    'images': []
                }
        # Ajout de la page au block courant
        current_block['text'] += page_text
        for image in page_images:
            if len(image) < max_image_size:
                current_block['images'].append(image)
            else:
                from django.core.mail import send_mail
                send_mail(
                    subject='Alerte: Image trop volumineuse détectée',
                    message=f'Une image de taille supérieure à {max_image_size} octets a été détectée lors du traitement du document.',
                    from_email='admin@ed-disce.fr',
                    recipient_list=['antoine@ed-disce.fr'],
                    fail_silently=False,
                )
                return None
    # Ajout du dernier block s'il n'est pas vide
    if current_block['text']:
        blocks.append(current_block)
    
    if len(blocks) > max_blocks:
        return None
    
    return blocks


def create_prompts(title, achitecture):
    prompts = []
    for part in achitecture:
        if part['tp'] == 'pa':
            current_part = part['ctn']
            prompts.append({"type": "part", "prompt": current_part})
        elif part['tp'] == 'tx':
            prompts.append({"type": "text", "prompt": title + ": " + current_part + ": " + part['ctn']})
        elif part['tp'] == 'fl':
            prompts.append({"type": "flashcard", "prompt": title + ": " + current_part + ": " + part['ctn']})
        elif part['tp'] == 'ex':
            prompts.append({"type": "exercise", "prompt": title + ": " + current_part + ": " + part['ctn']})
        else:
            manager_error(1, f"[createCourseArchitecture] Type de partie non reconnu: {part['tp']}")
    return prompts