from flask import Flask, render_template, request, send_from_directory, jsonify
import sqlite3
import os

app = Flask(__name__)

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DOCS_FOLDER = os.path.join(BASE_DIR, 'documents')
app.config['UPLOAD_FOLDER'] = DOCS_FOLDER

def check_db(number, date_issue):
    try:
        conn = sqlite3.connect('base.db')
        cursor = conn.cursor()
        
        number = number.strip()
        date_issue = date_issue.strip()
        
        cursor.execute("SELECT file_path FROM apostilles WHERE number = ? AND date_issue = ?", (number, date_issue))
        result = cursor.fetchone()
        conn.close()
        
        if result:
            full_path = result[0]
            return os.path.basename(full_path)
        return None
    except Exception:
        return None

@app.route('/')
@app.route('/main.html')
def home():
    return render_template('main.html')

@app.route('/main-en.html')
def home_en():
    return render_template('main-en.html')

@app.route('/search', methods=['GET'])
def search():
    number = request.args.get('number')
    date_val = request.args.get('T2')
    
    if not number or not date_val:
        return jsonify({"found": False})

    filename = check_db(number, date_val)
    
    if filename:
        return jsonify({"found": True, "url": f"/documents/{filename}"})
    else:
        return jsonify({"found": False})

@app.route('/documents/<filename>')
def serve_document(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename)

@app.route('/help.html')
def help_page():
    return render_template('help.html')

@app.route('/help-en.html')
def help_en_page():
    return render_template('help-en.html')

@app.route('/not_found.html')
def not_found_page():
    return render_template('not_found.html')

@app.route('/not_found_en.html')
def not_found_en_page():
    return render_template('not_found_en.html')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)