"""龙先生(lxs)：打手注册成功时同步开通管事。

管事邀请人 = 打手邀请人（邀请该用户的管事 UID）。
其它俱乐部不处理。
"""
from __future__ import annotations

import logging

from utils.invitationcode_utils import CreateInvitationCode

logger = logging.getLogger(__name__)

LXS_CLUB_ID = 'lxs'


def ensure_lxs_guanshi_on_dashou_register(user, inviter_uid, club_id):
    """
    仅 club_id=lxs：若尚无管事身份则创建。
    返回新建或已有的 UserGuanshi；非 lxs / 参数不全则返回 None。
    """
    from users.models import UserGuanshi

    if (club_id or '').strip() != LXS_CLUB_ID:
        return None
    if not user:
        return None

    existing = UserGuanshi.query.filter(user=user).first()
    if existing:
        return existing

    inviter = (inviter_uid or '').strip()[:7] or None
    yaoqingma = CreateInvitationCode(str(user.UserUID))
    profile = UserGuanshi.query.create(
        user=user,
        yaoqingma=yaoqingma,
        yaoqingren=inviter,
    )
    logger.info(
        'lxs 打手注册同步开通管事 uid=%s yaoqingren=%s yaoqingma=%s',
        getattr(user, 'UserUID', ''),
        inviter,
        yaoqingma,
    )
    return profile
