@extends('layouts.app')

@section('title', 'Ticket #' . $ticket->id)

@section('content')
<div class="container py-4 customer-ticket-page">
    <div class="row justify-content-center">
        <div class="col-12 col-lg-10 col-xl-8">
            <div class="d-flex flex-column flex-md-row justify-content-between align-items-md-center gap-2 mb-3">
                <div>
                    <h1 class="h4 mb-1">Ticket #{{ $ticket->id }} - {{ $ticket->subject }}</h1>
                    <p class="text-muted mb-0">Order #{{ $ticket->order_id }} | {{ $ticket->statusLabel() }}</p>
                </div>
                <div class="d-flex justify-content-start justify-content-md-end gap-2">
                    <a href="{{ route('customer.orders.show', $ticket->order) }}" class="btn btn-outline-secondary btn-sm">Order</a>
                    <a href="{{ route('customer.tickets.index') }}" class="btn btn-outline-secondary btn-sm">All Tickets</a>
                </div>
            </div>

            <div class="card mb-3">
                <div class="card-body conversation-wrap">
                    @forelse($ticket->messages as $message)
                        @php
                            $isCustomer = $message->sender_type === 'customer';
                        @endphp
                        <div class="message-row {{ $isCustomer ? 'is-customer' : 'is-support' }}">
                            <div class="message-bubble {{ $isCustomer ? 'customer' : 'support' }}">
                                <div class="d-flex justify-content-between align-items-start gap-2 mb-1">
                                    <div>
                                        <strong>{{ $isCustomer ? 'You' : ($message->sender->name ?? 'Support Team') }}</strong>
                                    </div>
                                    <small class="text-muted">{{ $message->created_at->format('d M Y, h:i A') }}</small>
                                </div>
                                <div class="message-text">{{ $message->message }}</div>
                            </div>
                        </div>
                    @empty
                        <div class="text-center text-muted py-4">No messages yet.</div>
                    @endforelse
                </div>
            </div>


            @if($ticket->status !== 'closed_by_customer')
                <div class="card ticket-reply-card-compact">
                    <div class="card-header ticket-reply-header">
                        <strong>Reply</strong>
                        @if($ticket->status === 'answered')
                            <form method="POST" action="{{ route('customer.tickets.close', $ticket) }}" class="ticket-close-form">
                                @csrf
                                <button class="btn btn-outline-danger btn-sm" type="submit">Close Ticket</button>
                            </form>
                        @endif
                    </div>
                    <div class="card-body">
                        <form method="POST" action="{{ route('customer.tickets.reply', $ticket) }}">
                            @csrf
                            <div class="ticket-reply-row mb-2">
                                <textarea name="message" rows="1" class="form-control @error('message') is-invalid @enderror" required>{{ old('message') }}</textarea>
                                <button class="btn ticket-send-icon-btn" type="submit" aria-label="Send Reply">
                                    <i class="bi bi-send-fill"></i>
                                </button>
                            </div>
                            @error('message') <div class="invalid-feedback d-block">{{ $message }}</div> @enderror
                        </form>
                    </div>
                </div>
            @else
                <div class="alert alert-info">This ticket was closed by you.</div>
            @endif
        </div>
    </div>
</div>
@endsection

@push('styles')
<style>
.customer-ticket-page .conversation-wrap {
    max-height: 60vh;
    overflow-y: auto;
    background: #f8fafc;
}

.customer-ticket-page .message-row {
    display: flex;
    width: 100%;
    margin-bottom: 0.5rem;
}

.customer-ticket-page .message-row.is-customer {
    justify-content: flex-end;
}

.customer-ticket-page .message-row.is-support {
    justify-content: flex-start;
}

.customer-ticket-page .message-bubble {
    width: fit-content;
    max-width: min(75%, 680px);
    border-radius: .75rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid #e5e7eb;
    background: #fff;
}

.customer-ticket-page .message-row.is-customer .message-bubble {
    margin-left: auto;
    background: var(--color-primary-light);
    border-color: #dbe4ff;
}

.customer-ticket-page .message-row.is-support .message-bubble {
    margin-right: auto;
}

@media (max-width: 576px) {
    .customer-ticket-page .message-bubble {
        max-width: 88%;
        padding: 0.65rem 0.75rem;
    }

    .customer-ticket-page .message-bubble strong,
    .customer-ticket-page .message-bubble small,
    .customer-ticket-page .message-text {
        font-size: 0.85rem;
    }
}
</style>
@endpush
