#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from flask import Flask, request, send_file, jsonify
from flask_cors import CORS
import os
import tempfile
from generate_id_card import IDCardGenerator

app = Flask(__name__)
CORS(app)

@app.route('/generate', methods=['POST'])
def generate_cards():
    """API endpoint to generate ID cards"""
    try:
        data = request.get_json()
        ids_param = data.get('ids', '')
        
        if not ids_param:
            return jsonify({'status': 'error', 'message': 'No IDs provided'}), 400
        
        employee_ids = [id.strip() for id in ids_param.split(',') if id.strip()]
        
        if not employee_ids:
            return jsonify({'status': 'error', 'message': 'Invalid IDs format'}), 400
        
        # Generate cards
        generator = IDCardGenerator()
        zip_path = generator.generate_cards(employee_ids)
        generator.close_connection()
        
        if zip_path and os.path.exists(zip_path):
            # Send the ZIP file
            return send_file(
                zip_path,
                as_attachment=True,
                download_name=os.path.basename(zip_path),
                mimetype='application/zip'
            )
        else:
            return jsonify({'status': 'error', 'message': 'Failed to generate cards'}), 500
            
    except Exception as e:
        return jsonify({'status': 'error', 'message': str(e)}), 500

@app.route('/health', methods=['GET'])
def health_check():
    return jsonify({'status': 'ok', 'message': 'ID Card Generator API is running'})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, debug=True)