#!/usr/bin/env python3
"""
Quick test for the two failing endpoints after fixes
"""

import requests
import json
from datetime import datetime, timedelta

BASE_URL = "https://fitcoach-108.preview.emergentagent.com/api"
ADMIN_EMAIL = "admin@abbasfit.com"
ADMIN_PASSWORD = "admin"

def test_fixes():
    session = requests.Session()
    
    # Login as admin
    response = session.post(f"{BASE_URL}/auth/login", json={
        "email": ADMIN_EMAIL,
        "password": ADMIN_PASSWORD
    })
    
    if response.status_code != 200:
        print("❌ Login failed")
        return
    
    admin_token = response.json()["access_token"]
    session.headers.update({"Authorization": f"Bearer {admin_token}"})
    
    # Get admin user ID (we'll use admin as both admin and user for testing)
    admin_user_id = response.json()["user"]["id"]
    
    print("✅ Login successful")
    print(f"Admin User ID: {admin_user_id}")
    
    # Test 1: Progress Photos (should be fixed now)
    print("\n🔍 Testing Progress Photos...")
    sample_image = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg=="
    
    photo_data = {
        "photo_base64": sample_image,
        "photo_type": "front",
        "week_number": 1,
        "notes": "Test progress photo after fix"
    }
    
    photo_response = session.post(f"{BASE_URL}/user/progress-photos", json=photo_data)
    print(f"Progress Photos Status: {photo_response.status_code}")
    
    if photo_response.status_code == 200:
        print("✅ Progress Photos - FIXED!")
        print(f"Response: {json.dumps(photo_response.json(), indent=2)}")
    else:
        print("❌ Progress Photos - Still failing")
        print(f"Error: {photo_response.text}")
    
    # Test 2: Supplements Assignment and Logging
    print("\n🔍 Testing Supplements Assignment...")
    
    # Create supplement
    supplement_data = {
        "name": "Test Protein Fix",
        "description": "Testing supplement assignment fix",
        "dosage": "30g",
        "timing": "Post workout"
    }
    
    supp_response = session.post(f"{BASE_URL}/admin/supplements", json=supplement_data)
    
    if supp_response.status_code == 200:
        supplement_id = supp_response.json()["id"]
        print(f"✅ Supplement created: {supplement_id}")
        
        # Assign to admin user (using admin as user)
        assignment_data = {
            "user_id": admin_user_id,
            "supplement_id": supplement_id,
            "dosage": "30g",
            "timing": "After workout",
            "notes": "Test assignment fix"
        }
        
        assign_response = session.post(f"{BASE_URL}/admin/supplements/assign", json=assignment_data)
        
        if assign_response.status_code == 200:
            print("✅ Supplement assigned successfully")
            print(f"Assignment: {json.dumps(assign_response.json(), indent=2)}")
            
            # Now test logging (using same admin token as user)
            log_data = {
                "supplement_id": supplement_id,
                "taken": True
            }
            
            log_response = session.post(f"{BASE_URL}/user/supplements/log", json=log_data)
            print(f"Supplement Log Status: {log_response.status_code}")
            
            if log_response.status_code == 200:
                print("✅ Supplement Logging - WORKING!")
                print(f"Response: {json.dumps(log_response.json(), indent=2)}")
            else:
                print("❌ Supplement Logging - Still failing")
                print(f"Error: {log_response.text}")
                
                # Debug: Check assignments for this user
                print("\n🔍 Debugging - Checking user assignments...")
                user_supps = session.get(f"{BASE_URL}/user/supplements")
                print(f"User supplements status: {user_supps.status_code}")
                if user_supps.status_code == 200:
                    print(f"User supplements: {json.dumps(user_supps.json(), indent=2)}")
                
        else:
            print(f"❌ Supplement assignment failed: {assign_response.status_code}")
            print(f"Error: {assign_response.text}")
    else:
        print(f"❌ Supplement creation failed: {supp_response.status_code}")

if __name__ == "__main__":
    test_fixes()