"""一键初始化星之界(xzj)俱乐部（默认不批量给所有客服加任职）。"""
from django.core.management import call_command
from django.core.management.base import BaseCommand

from jituan.models import Club


class Command(BaseCommand):
    help = '创建星之界电竞俱乐部(xzj)；任职请单独 seed_admin_assignments --phone ...'

    def add_arguments(self, parser):
        parser.add_argument(
            '--wx-appid', default='wxdefa454152e78a03', help='星之界小程序 appid',
        )
        parser.add_argument(
            '--assignments',
            action='store_true',
            help='同时给 --phone 指定客服加 xzj 任职（需配合 --phone）',
        )
        parser.add_argument(
            '--phone', type=str, default='', help='与 --assignments 联用：客服手机号',
        )

    def handle(self, *args, **options):
        wx_appid = (options.get('wx_appid') or '').strip()
        club_id = 'xzj'
        name = '星之界电竞'

        if Club.query.filter(club_id=club_id).exists():
            self.stdout.write(self.style.WARNING(f'俱乐部 {club_id} 已存在，跳过 create_club'))
        else:
            self.stdout.write(f'创建俱乐部 {club_id} ...')
            call_command(
                'create_club',
                club_id,
                name=name,
                wx_appid=wx_appid,
            )

        if options.get('assignments'):
            phone = (options.get('phone') or '').strip()
            if not phone:
                self.stdout.write(self.style.WARNING(
                    '未指定 --phone，跳过任职。示例：'
                    'python manage.py seed_club_xzj --assignments --phone 你的手机号'
                ))
            else:
                call_command(
                    'seed_admin_assignments',
                    club_id=club_id,
                    phone=phone,
                )
        else:
            self.stdout.write(
                '未加任职。需要时在后台「数据范围」配置，或：'
                'python manage.py seed_admin_assignments --phone 手机号 --club-id xzj'
            )

        self.stdout.write(self.style.SUCCESS(
            f'星之界 {club_id} 就绪。请在后台「俱乐部配置」检查支付密钥。'
        ))
