Files
2026-01-30 15:03:43 +08:00

369 lines
10 KiB
Python

from models import FoodItem, db
def seed_filipino_foods():
"""Populate database with common Filipino foods"""
filipino_foods = [
# Rice (Kanin)
{
'name': 'White Rice',
'name_tagalog': 'Kanin',
'category': 'kanin',
'calories': 206,
'protein_g': 4.3,
'carbs_g': 45,
'fat_g': 0.4,
'serving_description': '1 cup cooked',
'serving_size_g': 158
},
{
'name': 'Fried Rice',
'name_tagalog': 'Sinangag',
'category': 'kanin',
'calories': 280,
'protein_g': 5,
'carbs_g': 42,
'fat_g': 10,
'serving_description': '1 cup',
'serving_size_g': 170
},
# Main Dishes (Ulam)
{
'name': 'Chicken Adobo',
'name_tagalog': 'Adobong Manok',
'category': 'ulam',
'calories': 350,
'protein_g': 35,
'carbs_g': 5,
'fat_g': 20,
'serving_description': '1 serving (2 pieces)',
'serving_size_g': 200
},
{
'name': 'Pork Sinigang',
'name_tagalog': 'Sinigang na Baboy',
'category': 'sabaw',
'calories': 280,
'protein_g': 25,
'carbs_g': 10,
'fat_g': 15,
'serving_description': '1 bowl',
'serving_size_g': 350
},
{
'name': 'Chicken Tinola',
'name_tagalog': 'Tinolang Manok',
'category': 'sabaw',
'calories': 200,
'protein_g': 28,
'carbs_g': 8,
'fat_g': 6,
'serving_description': '1 bowl',
'serving_size_g': 350
},
{
'name': 'Bicol Express',
'name_tagalog': 'Bicol Express',
'category': 'ulam',
'calories': 400,
'protein_g': 20,
'carbs_g': 10,
'fat_g': 32,
'serving_description': '1 serving',
'serving_size_g': 200
},
{
'name': 'Pork Sisig',
'name_tagalog': 'Sisig',
'category': 'ulam',
'calories': 450,
'protein_g': 25,
'carbs_g': 8,
'fat_g': 35,
'serving_description': '1 serving',
'serving_size_g': 180
},
{
'name': 'Menudo',
'name_tagalog': 'Menudo',
'category': 'ulam',
'calories': 320,
'protein_g': 22,
'carbs_g': 12,
'fat_g': 20,
'serving_description': '1 serving',
'serving_size_g': 200
},
{
'name': 'Kare-Kare',
'name_tagalog': 'Kare-Kare',
'category': 'ulam',
'calories': 380,
'protein_g': 24,
'carbs_g': 18,
'fat_g': 25,
'serving_description': '1 serving',
'serving_size_g': 250
},
{
'name': 'Lechon Kawali',
'name_tagalog': 'Lechon Kawali',
'category': 'ulam',
'calories': 500,
'protein_g': 30,
'carbs_g': 2,
'fat_g': 42,
'serving_description': '1 serving',
'serving_size_g': 150
},
{
'name': 'Pork Nilaga',
'name_tagalog': 'Nilagang Baboy',
'category': 'sabaw',
'calories': 280,
'protein_g': 28,
'carbs_g': 12,
'fat_g': 14,
'serving_description': '1 bowl',
'serving_size_g': 350
},
{
'name': 'Beef Bulalo',
'name_tagalog': 'Bulalo',
'category': 'sabaw',
'calories': 350,
'protein_g': 32,
'carbs_g': 8,
'fat_g': 22,
'serving_description': '1 bowl',
'serving_size_g': 400
},
# Vegetables (Gulay)
{
'name': 'Pinakbet',
'name_tagalog': 'Pinakbet',
'category': 'gulay',
'calories': 150,
'protein_g': 5,
'carbs_g': 20,
'fat_g': 6,
'serving_description': '1 cup',
'serving_size_g': 200
},
{
'name': 'Laing',
'name_tagalog': 'Laing',
'category': 'gulay',
'calories': 180,
'protein_g': 6,
'carbs_g': 15,
'fat_g': 12,
'serving_description': '1 cup',
'serving_size_g': 180
},
{
'name': 'Ginisang Monggo',
'name_tagalog': 'Ginisang Monggo',
'category': 'gulay',
'calories': 200,
'protein_g': 12,
'carbs_g': 30,
'fat_g': 4,
'serving_description': '1 cup',
'serving_size_g': 220
},
# Breakfast (Almusal)
{
'name': 'Beef Tapa with Rice and Egg',
'name_tagalog': 'Tapsilog',
'category': 'almusal',
'calories': 650,
'protein_g': 45,
'carbs_g': 60,
'fat_g': 25,
'serving_description': '1 plate',
'serving_size_g': 400
},
{
'name': 'Longganisa with Rice and Egg',
'name_tagalog': 'Longsilog',
'category': 'almusal',
'calories': 700,
'protein_g': 38,
'carbs_g': 65,
'fat_g': 32,
'serving_description': '1 plate',
'serving_size_g': 420
},
{
'name': 'Tocino with Rice and Egg',
'name_tagalog': 'Tocilog',
'category': 'almusal',
'calories': 680,
'protein_g': 42,
'carbs_g': 62,
'fat_g': 28,
'serving_description': '1 plate',
'serving_size_g': 400
},
{
'name': 'Fried Egg',
'name_tagalog': 'Pritong Itlog',
'category': 'almusal',
'calories': 90,
'protein_g': 6,
'carbs_g': 1,
'fat_g': 7,
'serving_description': '1 egg',
'serving_size_g': 50
},
# Snacks (Meryenda)
{
'name': 'Pandesal',
'name_tagalog': 'Pandesal',
'category': 'meryenda',
'calories': 120,
'protein_g': 3,
'carbs_g': 22,
'fat_g': 2,
'serving_description': '1 piece',
'serving_size_g': 40
},
{
'name': 'Turon',
'name_tagalog': 'Turon',
'category': 'meryenda',
'calories': 180,
'protein_g': 2,
'carbs_g': 35,
'fat_g': 5,
'serving_description': '1 piece',
'serving_size_g': 80
},
{
'name': 'Bibingka',
'name_tagalog': 'Bibingka',
'category': 'meryenda',
'calories': 220,
'protein_g': 5,
'carbs_g': 38,
'fat_g': 6,
'serving_description': '1 piece',
'serving_size_g': 100
},
{
'name': 'Puto',
'name_tagalog': 'Puto',
'category': 'meryenda',
'calories': 90,
'protein_g': 2,
'carbs_g': 18,
'fat_g': 1,
'serving_description': '1 piece',
'serving_size_g': 40
},
{
'name': 'Lumpia',
'name_tagalog': 'Lumpia',
'category': 'meryenda',
'calories': 100,
'protein_g': 4,
'carbs_g': 10,
'fat_g': 5,
'serving_description': '1 piece',
'serving_size_g': 50
},
{
'name': 'Banana Cue',
'name_tagalog': 'Banana Cue',
'category': 'meryenda',
'calories': 150,
'protein_g': 1,
'carbs_g': 32,
'fat_g': 4,
'serving_description': '1 piece',
'serving_size_g': 100
},
# Proteins
{
'name': 'Grilled Tilapia',
'name_tagalog': 'Inihaw na Tilapia',
'category': 'ulam',
'calories': 180,
'protein_g': 32,
'carbs_g': 0,
'fat_g': 5,
'serving_description': '1 whole fish',
'serving_size_g': 150
},
{
'name': 'Grilled Chicken',
'name_tagalog': 'Inihaw na Manok',
'category': 'ulam',
'calories': 280,
'protein_g': 40,
'carbs_g': 0,
'fat_g': 13,
'serving_description': '1 breast',
'serving_size_g': 150
},
{
'name': 'Fried Bangus',
'name_tagalog': 'Pritong Bangus',
'category': 'ulam',
'calories': 220,
'protein_g': 28,
'carbs_g': 0,
'fat_g': 12,
'serving_description': '1 piece',
'serving_size_g': 120
}
]
added_count = 0
for food_data in filipino_foods:
# Check if already exists
existing = FoodItem.query.filter_by(
name=food_data['name'],
is_filipino=True
).first()
if not existing:
food = FoodItem(
name=food_data['name'],
name_tagalog=food_data.get('name_tagalog'),
category=food_data['category'],
calories=food_data['calories'],
protein_g=food_data['protein_g'],
carbs_g=food_data['carbs_g'],
fat_g=food_data['fat_g'],
fiber_g=food_data.get('fiber_g', 0),
sugar_g=food_data.get('sugar_g', 0),
sodium_mg=food_data.get('sodium_mg', 0),
serving_size_g=food_data['serving_size_g'],
serving_description=food_data['serving_description'],
source='filipino',
is_filipino=True
)
db.session.add(food)
added_count += 1
try:
db.session.commit()
print(f"Successfully added {added_count} Filipino foods to the database!")
except Exception as e:
db.session.rollback()
print(f"Error seeding Filipino foods: {e}")
if __name__ == '__main__':
from app import app, db
with app.app_context():
seed_filipino_foods()