from django.core.management.base import BaseCommand
from datetime import datetime
from iching.utils.bz import getDateTimeGodEarthStem
from iching.utils.bzshagod import calcBaziShaGods, gShagodNames, gGoodGods, gBadGods, god_at

class Command(BaseCommand):
    help = 'Calculate and display sha gods for a given date and time'

    def add_arguments(self, parser):
        parser.add_argument('--year', type=int, help='Year (e.g., 2024)', default=2020)
        parser.add_argument('--month', type=int, help='Month (1-12)', default=1)
        parser.add_argument('--day', type=int, help='Day (1-31)', default=1)
        parser.add_argument('--hour', type=int, help='Hour (0-23)', default=0)
        parser.add_argument('--minute', type=int, help='Minute (0-59)', default=0)

    def handle(self, *args, **options):
        year = options['year'] if options['year'] else 2020
        month = options['month'] if options['month'] else 1
        day = options['day'] if options['day'] else 1
        hour = options['hour'] if options['hour'] else 12
        minute = options['minute'] if options['minute'] else 0

        # Get BaZi data using getDateTimeGodEarthStem
        bazi_data = getDateTimeGodEarthStem(year, month, day, hour, minute)
        self.stdout.write(f"bazi {bazi_data}")

        result = god_at(['tian_yi', 'tian_de', 'yue_de', 'taiji', 'lushen', 'wenchang', 'yima', 'taohua', 'hongluan', 'tianxi', 'jiangxing', 'fuxing', 'huagai', 'jiesha', 'wangshen', 'yangren', 'guchen', 'guashu', 'tianyi', 'yinchayangcuo', 'zaisha', 'gejiao', 'feiren', 'shieda', 'liuxiu', 'jinyu'], bazi_data)
        self.stdout.write(f"result {result}")