from flask import Blueprint, request, render_template, jsonify
from backend.attire_check import check_attire
import base64
import json
import os

routes = Blueprint('routes', __name__)

@routes.route('/')
def index():
    return render_template('attire_check.html')

@routes.route('/attire_check', methods=['POST'])
def handle_attire_check():
    try:
        image_b64 = request.json.get('image')
        result = check_attire(image_b64)
        return jsonify({'result': result})
    except Exception as e:
        return jsonify({'error': str(e)}), 500


@routes.route('/save_attire', methods=['POST'])
def save_attire():
    try:
        data = request.json
        phone_number = data.get('phone_number')
        image_base64 = data.get('image')

        if not phone_number or not image_base64:
            return jsonify({"status": "error", "message": "Phone number or image missing"}), 400

        os.makedirs('assets/images', exist_ok=True)
        os.makedirs('assets/attire_result', exist_ok=True)

        with open(f'assets/images/{phone_number}.jpg', "wb") as img_file:
            img_file.write(base64.b64decode(image_base64))

        with open(f'assets/attire_result/{phone_number}.json', "w") as json_file:
            json.dump(data, json_file, indent=4)

        return jsonify({"status": "success", "message": "Data saved successfully"})

    except Exception as e:
        return jsonify({"status": "error", "message": str(e)}), 500