from flask import Blueprint, render_template, request, redirect, url_for, session
from models import db, Ticket
from datetime import datetime

ticketing_bp = Blueprint('ticketing', __name__, template_folder='templates')

@ticketing_bp.route('/tickets')
def ticket_list():
    if 'user' not in session:
        return redirect(url_for('login'))
    tickets = Ticket.query.order_by(Ticket.created_at.desc()).all()
    return render_template('tickets.html', tickets=tickets)

@ticketing_bp.route('/tickets/new', methods=['GET', 'POST'])
def new_ticket():
    if 'user' not in session:
        return redirect(url_for('login'))

    if request.method == 'POST':
        title = request.form['title']
        description = request.form['description']
        status = 'Ouvert'

        ticket = Ticket(
            title=title,
            description=description,
            status=status,
            created_at=datetime.now()
        )

        db.session.add(ticket)
        db.session.commit()
        return redirect(url_for('ticketing.ticket_list'))

    return render_template('new_ticket.html')

@ticketing_bp.route('/tickets/<int:ticket_id>')
def ticket_detail(ticket_id):
    if 'user' not in session:
        return redirect(url_for('login'))

    ticket = Ticket.query.get_or_404(ticket_id)
    return render_template('ticket_detail.html', ticket=ticket)
