"""Reset password and generate backup codes for russ@lonestarelectrical.net"""
from google.oauth2 import service_account
from googleapiclient.discovery import build

SCOPES = [
    'https://www.googleapis.com/auth/admin.directory.user',
    'https://www.googleapis.com/auth/admin.directory.user.security',
]

creds = service_account.Credentials.from_service_account_file(
    'temp/acg-msp-access-8f72339997e5.json', scopes=SCOPES
)
delegated = creds.with_subject('sysadmin@lonestarelectrical.net')
service = build('admin', 'directory_v1', credentials=delegated)

user_email = 'russ@lonestarelectrical.net'

# Check user
print(f"=== {user_email} ===")
user = service.users().get(userKey=user_email).execute()
print(f"Name: {user.get('name', {}).get('fullName', 'N/A')}")
print(f"2SV Enrolled: {user.get('isEnrolledIn2Sv', False)}")
print(f"2SV Enforced: {user.get('isEnforcedIn2Sv', False)}")
print(f"Last Login: {user.get('lastLoginTime', 'N/A')}")

# Reset password
new_pass = 'LoneStar2026!!'
service.users().update(
    userKey=user_email,
    body={'password': new_pass, 'changePasswordAtNextLogin': False, 'suspended': False}
).execute()
print(f"\n[OK] Password reset: {new_pass}")

# Generate backup codes
service.verificationCodes().generate(userKey=user_email).execute()
result = service.verificationCodes().list(userKey=user_email).execute()
codes = result.get('items', [])
if codes:
    print(f"\nBackup codes:")
    for c in codes:
        print(f"  {c.get('verificationCode')}")
