Files
natureinpots_community/plugins/cli/seed.py
2025-06-04 23:24:16 -05:00

54 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import click
from flask.cli import with_appcontext
from datetime import datetime, timedelta
from app import db
from plugins.auth.models import User
from plugins.plant.models import (
Plant, PlantCommonName, PlantScientificName
)
@click.command(name='preload-data') # 🔧 changed from preload_data
@with_appcontext
def preload_data_cli():
preload_data(auto=False)
def preload_data(auto=False):
if User.query.filter_by(email='admin@example.com').first():
if not auto:
click.echo("⚠️ Demo data already exists, skipping.")
return
if not auto:
click.echo("🌱 Seeding demo data...")
# USERS
admin = User(email='admin@example.com', role='admin', is_verified=True)
admin.set_password('password123')
user = User(email='user@example.com', role='user', is_verified=True)
user.set_password('password123')
db.session.add_all([admin, user])
db.session.commit()
# COMMON & SCIENTIFIC NAMES
joepii_common = PlantCommonName(name='Philodendron Joepii')
queen_common = PlantCommonName(name='Anthurium Warocqueanum Queen')
thai_common = PlantCommonName(name='Thai Constellation Monstera')
generic_common = PlantCommonName(name='Monstera')
db.session.add_all([joepii_common, queen_common, thai_common, generic_common])
db.session.flush() # ensures all common_name IDs are available
joepii_sci = PlantScientificName(name='Philodendron × joepii', common_id=joepii_common.id)
queen_sci = PlantScientificName(name='Anthurium warocqueanum', common_id=queen_common.id)
thai_sci = PlantScientificName(name="Monstera deliciosa 'Thai Constellation'", common_id=thai_common.id)
generic_sci = PlantScientificName(name='Monstera deliciosa', common_id=generic_common.id)
db.session.add_all([joepii_sci, queen_sci, thai_sci, generic_sci])
db.session.commit()
if not auto:
click.echo("🎉 Demo data seeded successfully.")