from app import create_app
from app.extensions import db
from app.models.contract import Contract
from app.models.user import User
from datetime import datetime

app = create_app()

print("=== RATING WORKFLOW TEST ===\n")

with app.app_context():
    # Get the active contract
    contract = Contract.query.get(4)
    print(f"Testing Contract {contract.id}:")
    print(f"  Current Status: {contract.status}")
    print(f"  Worker ID: {contract.worker_id}")
    print(f"  Contractor ID: {contract.contractor_id}")
    
    # Step 1: Simulate worker marking complete (use shorter status)
    print("\n1. Worker marks job complete...")
    contract.status = 'pending_review'  # Shortened from 'pending_contractor_review'
    contract.completion_status = 'pending_review'
    contract.worker_completion_date = datetime.utcnow()
    db.session.commit()
    print(f"   ✓ Status changed to: {contract.status}")
    
    # Step 2: Simulate contractor approval (use shorter status)
    print("\n2. Contractor approves completion...")
    contract.status = 'pending_rating'  # Shortened from 'completed_pending_rating'
    contract.completion_status = 'approved'
    contract.contractor_approval_date = datetime.utcnow()
    db.session.commit()
    print(f"   ✓ Status changed to: {contract.status}")
    
    print("\n✅ Contract ready for ratings!")
    print("   Both parties can now submit reviews")
    print(f"\n   Next: Use POST /safety/reviews with contract_id={contract.id}")
    print("\n   Note: Updated status names to fit VARCHAR(20) limit:")
    print("   - 'pending_contractor_review' → 'pending_review'")
    print("   - 'completed_pending_rating' → 'pending_rating'")
