# Système d'extraction de tickets Odoo

Ce projet permet d'extraire les informations des tickets Odoo (tâches, tickets de support) avec leurs messages et pièces jointes, et de les sauvegarder dans une structure organisée.

## Installation

1. Clonez le dépôt
2. Créez un environnement virtuel :
   ```bash
   python3 -m venv venv
   source venv/bin/activate  # Sur Linux/Mac
   # ou
   venv\Scripts\activate  # Sur Windows
   ```
3. Installez les dépendances :
   ```bash
   pip install -r requirements.txt
   ```

## Configuration

Créez un fichier `config.json` basé sur le modèle `config.template.json` :

```json
{
    "odoo_url": "https://votre-instance.odoo.com",
    "odoo_db": "nom_de_la_base",
    "odoo_username": "votre_email@exemple.com",
    "odoo_api_key": "votre_clé_api_odoo",
    "output_dir": "ticket_structure"
}
```

## Utilisation

Pour extraire un ticket, utilisez la commande :

```bash
python -m utils.retrieve_ticket CODE_TICKET
```

Options disponibles :
- `--output`, `-o` : Répertoire de sortie (défaut: "ticket_structure")
- `--config`, `-c` : Chemin vers le fichier de configuration (défaut: "config.json")
- `--verbose`, `-v` : Activer le mode verbeux

Exemple :
```bash
python -m utils.retrieve_ticket T1234 --output mes_tickets --verbose
```

## Structure des fichiers générés

Pour chaque ticket extrait, un répertoire est créé avec la structure suivante :

```
CODE_TICKET_DATE/
├── all_messages.json       # Messages traités au format JSON
├── all_messages.txt        # Messages au format texte 
├── attachments/            # Répertoire contenant les pièces jointes
├── attachments_info.json   # Métadonnées des pièces jointes
├── extraction_summary.json # Résumé de l'extraction
├── messages_raw.json       # Messages bruts
├── structure.json          # Structure du répertoire
├── ticket_info.json        # Données complètes du ticket
└── ticket_summary.json     # Résumé du ticket
```

## Gestionnaires disponibles

Le système est divisé en plusieurs gestionnaires :

- `AuthManager` : Gère l'authentification et les appels à l'API Odoo
- `TicketManager` : Gère la récupération des tickets et organise leur extraction
- `MessageManager` : Gère le traitement des messages (filtrage, nettoyage)
- `AttachmentManager` : Gère le téléchargement des pièces jointes

## Licence

Ce projet est sous licence MIT. 