from django.core.management.base import BaseCommand
from nutrition.models import Aliment, CategorieAliment

class Command(BaseCommand):
    help = 'Charge les aliments depuis le guide nutritionnel'

    def handle(self, *args, **kwargs):
        self.stdout.write('Chargement des aliments...')
        
        # Légumes verts - Aliments Brûle-Graisses
        legumes_verts = [
            'Artichauts', 'Asperges', 'Aubergines', 'Blettes', 'Brocolis',
            'Céleri', 'Champignons', 'Chanterelles', 'Choux blanc',
            'Choux de Bruxelles', 'Choux-fleurs', 'Choux rouge',
            'Coeur de palmiers', 'Concombres', 'Courgettes', 'Endives',
            'Epinards', 'Fenouil', 'Haricots verts', 'Pousse de soja',
            'Pousse d\'haricot mungo', 'Poireaux', 'Poivrons',
            'Radis rouge', 'Salades vertes'
        ]
        
        for legume in legumes_verts:
            Aliment.objects.get_or_create(
                nom=legume,
                defaults={
                    'categorie': CategorieAliment.LEGUME_VERT,
                    'portion_standard': 'Sans modération'
                }
            )
        
        # Protéines
        proteines = [
            ('Blanc de poulet / dinde', '150gr cuit'),
            ('Jambon blanc découenné -25% sel', '130gr cuit'),
            ('Boeuf 5% mg (steak/carpaccio)', '150gr cuit'),
            ('Lapin', '150gr cuit'),
            ('Thon nature / steak de thon', '150gr cuit'),
            ('Cabillaud', '150gr cuit'),
            ('Colin d\'alaska', '150gr cuit'),
            ('Crevette', '150gr cuit'),
            ('Noix de saint jacques', '150gr cuit'),
            ('Lotte', '150gr cuit'),
            ('Homard', '150gr cuit'),
            ('Moules', '150gr cuit'),
            ('Poulpe', '150gr cuit'),
            ('Sole', '150gr cuit'),
            ('Bulots', '150gr cuit'),
            ('Huitres', '150gr cuit'),
            ('Seiche', '150gr cuit'),
            ('Crabes', '150gr cuit'),
            ('Gambas', '150gr cuit'),
            ('Daurade', '150gr cuit'),
            ('Flétan', '150gr cuit'),
            ('Limande', '150gr cuit'),
            ('Panga', '150gr cuit'),
            ('Truite', '150gr cuit'),
            ('Hareng', '150gr cuit (compte aussi pour 1 lipide)'),
            ('Maquereau nature', '150gr cuit (compte aussi pour 1 lipide)'),
            ('Sardines nature', '150gr cuit (compte aussi pour 1 lipide)'),
            ('Saumon', '150gr cuit (compte aussi pour 1 lipide)'),
            ('Viande de grison', '130gr'),
            ('Blanc d\'oeuf', '7 moyens'),
            ('Oeuf entier', '4 moyens (compte aussi pour 1 lipide)'),
            ('Yaourt brebis/chèvre 0%, Skyr', '300gr'),
            ('Cottage cheese', '200gr'),
            ('Whey protéine isolat', '2 scoop (40gr)'),
            ('Barre de protéine', '1 barre'),
        ]
        
        for nom, portion in proteines:
            Aliment.objects.get_or_create(
                nom=nom,
                defaults={
                    'categorie': CategorieAliment.PROTEINE,
                    'portion_standard': portion
                }
            )
        
        # Lipides
        lipides = [
            ('Avocat', '1/2'),
            ('Amandes', '1 poignée'),
            ('Noix', '1 poignée'),
            ('Noix de cajou', '1 poignée'),
            ('Noix de Macadamia', '1 poignée'),
            ('Noix du brésil', '1 poignée'),
            ('Noix de pécan', '1 poignée'),
            ('Noisettes', '1 poignée'),
            ('Graines de Chia', '1 poignée'),
            ('Graines de courge', '1 CàC'),
            ('Graines de lin', '1 CàC'),
            ('Purée d\'amandes', '1 CàC'),
            ('Purée de noisettes', '1 CàC'),
            ('Beurre de cacahuètes', '1 CàC'),
            ('Huile d\'olive', '1 CàS'),
            ('Huile de colza', '1 CàS'),
            ('Huile de noix', '1 CàS'),
            ('Huile de lin', '1 CàS'),
            ('Huile de coco', '1 CàS'),
            ('Chocolat noir 85% ou +', '1 carré'),
        ]
        
        for nom, portion in lipides:
            Aliment.objects.get_or_create(
                nom=nom,
                defaults={
                    'categorie': CategorieAliment.LIPIDE,
                    'portion_standard': portion
                }
            )
        
        # Glucides
        glucides = [
            ('Flocons d\'avoine', '1/2 bol'),
            ('Avoine instantané', '1/2 bol'),
            ('Weetabix', '1/2 bol'),
            ('Flocons de sarrasin', '1/2 bol'),
            ('Flakes de mais bio', '1/2 bol'),
            ('Flakes de sarrasin bio', '1/2 bol'),
            ('Farine de flocons d\'avoines', '1/2 bol'),
            ('Farine de riz bio', '1/2 bol'),
            ('Farine de patate douce', '1/2 bol'),
            ('Volkornbrot', '2 tranches'),
            ('Pain au seigle complet', '2 tranches'),
            ('Pain complet', '2 tranches'),
            ('Banane', '1'),
            ('Quinoa', '1/2 assiette cuit'),
            ('Riz basmati', '1/2 assiette cuit'),
            ('Riz complet', '1/2 assiette cuit'),
            ('Pâtes complètes', '1/2 assiette cuit'),
            ('Amarante bio', '1/2 assiette cuit'),
            ('Pomme de terre', '1/2 assiette cuit'),
            ('Epeautre', '1/2 assiette cuit'),
            ('Patate douce', '1/2 assiette cuit'),
            ('Lentilles vertes', '1/2 assiette cuit'),
            ('Lentilles corails', '1/2 assiette cuit'),
            ('Pois chiche', '1/2 assiette cuit'),
            ('Haricot blanc', '1/2 assiette cuit'),
            ('Haricot rouge', '1/2 assiette cuit'),
            ('Petit pois', '1/2 assiette cuit'),
        ]
        
        for nom, portion in glucides:
            Aliment.objects.get_or_create(
                nom=nom,
                defaults={
                    'categorie': CategorieAliment.GLUCIDE,
                    'portion_standard': portion
                }
            )
        
        # Fruits & Crudités
        fruits = [
            ('Fraises', '1 bol'),
            ('Framboises', '1 bol'),
            ('Myrtilles', '1 bol'),
            ('Cerises', '1 bol'),
            ('Cassis', '1 bol'),
            ('Groseilles', '1 bol'),
            ('Mûres', '1 bol'),
            ('Raisin', '1 bol'),
            ('Rhubarbe', '1 bol'),
            ('Châtaigne', '1 bol'),
            ('Kiwi', '2 fruits entiers'),
            ('Mirabelle', '2 fruits entiers'),
            ('Abricot', '2 fruits entiers'),
            ('Figue', '2 fruits entiers'),
            ('Pruneau', '2 fruits entiers'),
            ('Pomme', '1 fruit entier'),
            ('Poire', '1 fruit entier'),
            ('Orange', '1 fruit entier'),
            ('Clémentine', '1 fruit entier'),
            ('Nectarine', '1 fruit entier'),
            ('Mandarine', '1 fruit entier'),
            ('Pomélo', '1 fruit entier'),
            ('Pamplemousse', '1 fruit entier'),
            ('Pêche', '1 fruit entier'),
            ('Prune', '1 fruit entier'),
            ('Kaki', '1 fruit entier'),
            ('Coing', '1 fruit entier'),
            ('Melon', '1/4 de fruit'),
            ('Ananas', '1/4 de fruit'),
            ('Pastèque', '1/4 de fruit'),
            ('Betterave', '1 assiette'),
            ('Carotte', '1 assiette'),
            ('Courge', '1 assiette'),
            ('Panais', '1 assiette'),
            ('Potiron', '1 assiette'),
            ('Potimarron', '1 assiette'),
            ('Radis noir', '1 assiette'),
            ('Topinambour', '1 assiette'),
            ('Rutabaga', '1 assiette'),
            ('Tomate', '1 assiette'),
            ('Radis rose', '1 assiette'),
            ('Mais', '1 assiette'),
            ('Cardon', '1 assiette'),
            ('Crosnes', '1 assiette'),
            ('Citrouille', '1 assiette'),
            ('Jus de fruits sans sucre ajouté', '1 verre (25cl)'),
        ]
        
        for nom, portion in fruits:
            Aliment.objects.get_or_create(
                nom=nom,
                defaults={
                    'categorie': CategorieAliment.FRUIT,
                    'portion_standard': portion
                }
            )
        
        self.stdout.write(self.style.SUCCESS('Aliments chargés avec succès!'))
