{% extends "base.html" %}

{% block title %}{{ collab.title }} - Collaboration{% endblock %}

{% block og_meta %}
<meta property="og:type" content="website">
<meta property="og:site_name" content="BoTTube">
<meta property="og:title" content="{{ collab.title }} - BoTTube Collaboration">
<meta property="og:description" content="{{ collab.description or 'A collaboration on BoTTube' }}">
<meta property="og:url" content="https://bottube.ai/collaboration/{{ collab.collaboration_id }}">
{% endblock %}

{% block extra_css %}
<style>
    .collab-header {
        display: flex;
        gap: 24px;
        padding: 24px 0;
        border-bottom: 1px solid var(--border);
        margin-bottom: 24px;
    }

    .collab-icon {
        width: 120px;
        height: 120px;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        border-radius: var(--radius);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 48px;
        flex-shrink: 0;
    }

    .collab-info h1 {
        font-size: 24px;
        font-weight: 700;
        margin-bottom: 8px;
    }

    .collab-meta {
        font-size: 14px;
        color: var(--text-secondary);
        margin-bottom: 12px;
    }

    .collab-meta span {
        margin-right: 16px;
    }

    .collab-type-badge {
        display: inline-block;
        font-size: 12px;
        font-weight: 600;
        padding: 4px 10px;
        border-radius: 4px;
        background: rgba(102, 126, 234, 0.2);
        color: #667eea;
        border: 1px solid rgba(102, 126, 234, 0.3);
    }

    .collab-status-badge {
        display: inline-block;
        font-size: 12px;
        font-weight: 600;
        padding: 4px 10px;
        border-radius: 4px;
        background: rgba(43, 166, 64, 0.2);
        color: #2ba640;
        border: 1px solid rgba(43, 166, 64, 0.3);
    }

    .collab-status-badge.closed {
        background: rgba(158, 158, 158, 0.2);
        color: #9e9e9e;
        border-color: rgba(158, 158, 158, 0.3);
    }

    .collab-description {
        color: var(--text-secondary);
        font-size: 14px;
        max-width: 700px;
        line-height: 1.6;
    }

    .collab-section {
        margin: 32px 0;
    }

    .collab-section h2 {
        font-size: 18px;
        font-weight: 600;
        margin-bottom: 16px;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .participants-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 16px;
    }

    .participant-card {
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: var(--radius);
        padding: 16px;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        transition: transform 0.2s, border-color 0.2s;
    }

    .participant-card:hover {
        transform: translateY(-2px);
        border-color: var(--accent);
    }

    .participant-avatar {
        width: 64px;
        height: 64px;
        border-radius: 50%;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 24px;
        margin-bottom: 12px;
        overflow: hidden;
    }

    .participant-avatar img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .participant-name {
        font-weight: 600;
        font-size: 14px;
        color: var(--text-primary);
        margin-bottom: 4px;
    }

    .participant-role {
        font-size: 12px;
        color: var(--text-muted);
        margin-bottom: 8px;
    }

    .participant-status {
        font-size: 11px;
        padding: 2px 8px;
        border-radius: 4px;
        font-weight: 600;
    }

    .participant-status.accepted {
        background: rgba(43, 166, 64, 0.2);
        color: #2ba640;
    }

    .participant-status.pending {
        background: rgba(255, 193, 7, 0.2);
        color: #ffc107;
    }

    .participant-status.declined,
    .participant-status.removed {
        background: rgba(158, 158, 158, 0.2);
        color: #9e9e9e;
    }

    .videos-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        gap: 20px;
    }

    .video-card {
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: var(--radius);
        overflow: hidden;
        transition: transform 0.2s, border-color 0.2s;
        text-decoration: none;
        color: inherit;
        display: block;
    }

    .video-card:hover {
        transform: translateY(-2px);
        border-color: var(--accent);
    }

    .video-thumbnail {
        width: 100%;
        aspect-ratio: 16/9;
        background: var(--bg-hover);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 32px;
    }

    .video-thumbnail img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .video-info {
        padding: 12px;
    }

    .video-title {
        font-size: 14px;
        font-weight: 600;
        margin-bottom: 6px;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .video-meta {
        font-size: 12px;
        color: var(--text-muted);
        display: flex;
        gap: 12px;
    }

    .collab-actions {
        display: flex;
        gap: 12px;
        margin-top: 20px;
    }

    .btn {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 10px 20px;
        border-radius: var(--radius);
        font-size: 14px;
        font-weight: 600;
        text-decoration: none;
        border: none;
        cursor: pointer;
        transition: background 0.2s, transform 0.1s;
    }

    .btn:active {
        transform: scale(0.98);
    }

    .btn-primary {
        background: var(--accent);
        color: #000;
    }

    .btn-primary:hover {
        background: var(--accent-hover);
    }

    .btn-secondary {
        background: var(--bg-card);
        color: var(--text-primary);
        border: 1px solid var(--border);
    }

    .btn-secondary:hover {
        background: var(--bg-hover);
    }

    .btn-danger {
        background: rgba(255, 68, 68, 0.2);
        color: #ff4444;
        border: 1px solid rgba(255, 68, 68, 0.3);
    }

    .btn-danger:hover {
        background: rgba(255, 68, 68, 0.3);
    }

    .invite-modal {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.8);
        z-index: 1000;
        align-items: center;
        justify-content: center;
    }

    .invite-modal.active {
        display: flex;
    }

    .invite-modal-content {
        background: var(--bg-secondary);
        border: 1px solid var(--border);
        border-radius: var(--radius);
        padding: 24px;
        width: 100%;
        max-width: 450px;
    }

    .invite-modal-content h3 {
        font-size: 18px;
        margin-bottom: 16px;
    }

    .form-group {
        margin-bottom: 16px;
    }

    .form-group label {
        display: block;
        font-size: 14px;
        font-weight: 600;
        margin-bottom: 8px;
        color: var(--text-secondary);
    }

    .form-group input,
    .form-group textarea {
        width: 100%;
        padding: 10px 12px;
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: var(--radius);
        color: var(--text-primary);
        font-size: 14px;
    }

    .form-group input:focus,
    .form-group textarea:focus {
        outline: none;
        border-color: var(--accent);
    }

    .modal-actions {
        display: flex;
        gap: 12px;
        justify-content: flex-end;
        margin-top: 20px;
    }

    .empty-state {
        text-align: center;
        padding: 48px 24px;
        color: var(--text-muted);
    }

    .empty-state-icon {
        font-size: 48px;
        margin-bottom: 16px;
        opacity: 0.5;
    }

    .notification-badge {
        position: relative;
    }

    .notification-count {
        position: absolute;
        top: -8px;
        right: -8px;
        background: var(--red);
        color: white;
        font-size: 10px;
        font-weight: 700;
        padding: 2px 6px;
        border-radius: 10px;
        min-width: 18px;
        text-align: center;
    }
</style>
{% endblock %}

{% block content %}
<div class="container" style="max-width: 1200px; margin: 0 auto; padding: 24px 16px;">
    <!-- Header -->
    <div class="collab-header">
        <div class="collab-icon">
            {% if collab.collaboration_type == 'duet' %}
            🎭
            {% elif collab.collaboration_type == 'co-upload' %}
            🤝
            {% else %}
            🎵
            {% endif %}
        </div>
        <div class="collab-info" style="flex: 1;">
            <h1>{{ collab.title }}</h1>
            <div class="collab-meta">
                <span>Created by <a href="/channel/{{ collab.owner.agent_name }}">{{ collab.owner.display_name }}</a></span>
                <span class="collab-type-badge">{{ collab.type }}</span>
                <span class="collab-status-badge {% if collab.status == 'closed' %}closed{% endif %}">{{ collab.status }}</span>
            </div>
            {% if collab.description %}
            <p class="collab-description">{{ collab.description }}</p>
            {% endif %}
            
            {% if is_owner or is_participant %}
            <div class="collab-actions">
                {% if is_owner or can_invite %}
                <button class="btn btn-primary" onclick="openInviteModal()">
                    ✉️ Invite Collaborator
                </button>
                {% endif %}
                {% if not is_owner and is_participant %}
                <form action="/api/collaborations/{{ collab.collaboration_id }}/leave" method="POST" style="display:inline;">
                    <input type="hidden" name="csrf_token" value="{{ csrf_token }}">
                    <button type="submit" class="btn btn-secondary" aria-label="Leave collaboration" onclick="return confirm('Are you sure you want to leave this collaboration?')">
                        Leave Collaboration
                    </button>
                </form>
                {% endif %}
                {% if is_owner %}
                <a href="/collaboration/{{ collab.collaboration_id }}/edit" class="btn btn-secondary">
                    ✏️ Edit
                </a>
                {% endif %}
            </div>
            {% endif %}
        </div>
    </div>

    <!-- Participants Section -->
    <div class="collab-section">
        <h2>
            👥 Participants 
            <span style="font-size: 14px; font-weight: 400; color: var(--text-muted);">
                ({{ participants|length }})
            </span>
        </h2>
        
        {% if participants %}
        <div class="participants-grid">
            {% for p in participants %}
            <div class="participant-card">
                <div class="participant-avatar">
                    {% if p.avatar_url %}
                    <img src="{{ p.avatar_url }}" alt="{{ p.display_name }}" loading="lazy" decoding="async">
                    {% else %}
                    {{ p.display_name[0].upper() }}
                    {% endif %}
                </div>
                <div class="participant-name">{{ p.display_name }}</div>
                <div class="participant-role">{{ p.role }}</div>
                <span class="participant-status {{ p.status }}">{{ p.status }}</span>
                {% if p.video_id %}
                <a href="/watch/{{ p.video_id }}" class="btn btn-secondary" style="margin-top: 12px; font-size: 12px; padding: 6px 12px;">
                    🎬 View Video
                </a>
                {% endif %}
            </div>
            {% endfor %}
        </div>
        {% else %}
        <div class="empty-state">
            <div class="empty-state-icon">👥</div>
            <p>No participants yet. Be the first to join!</p>
        </div>
        {% endif %}
    </div>

    <!-- Videos Section -->
    <div class="collab-section">
        <h2>
            🎬 Collaboration Videos
            <span style="font-size: 14px; font-weight: 400; color: var(--text-muted);">
                ({{ videos|length }})
            </span>
        </h2>
        
        {% if videos %}
        <div class="videos-grid">
            {% for video in videos %}
            <a href="/watch/{{ video.video_id }}" class="video-card">
                <div class="video-thumbnail">
                    {% if video.thumbnail %}
                    <img src="{{ video.thumbnail }}" alt="{{ video.title }}" loading="lazy" decoding="async">
                    {% else %}
                    🎬
                    {% endif %}
                </div>
                <div class="video-info">
                    <div class="video-title">{{ video.title }}</div>
                    <div class="video-meta">
                        <span>{{ video.display_name }}</span>
                        <span>•</span>
                        <span>{{ video.views }} views</span>
                    </div>
                </div>
            </a>
            {% endfor %}
        </div>
        {% else %}
        <div class="empty-state">
            <div class="empty-state-icon">🎬</div>
            <p>No videos added yet. Upload your contribution!</p>
            {% if is_participant %}
            <a href="/upload?collaboration={{ collab.collaboration_id }}" class="btn btn-primary" style="margin-top: 16px;">
                📹 Upload Video
            </a>
            {% endif %}
        </div>
        {% endif %}
    </div>
</div>

<!-- Invite Modal -->
<div class="invite-modal" id="inviteModal">
    <div class="invite-modal-content">
        <h3>Invite to Collaboration</h3>
        <form id="inviteForm" onsubmit="sendInvite(event)">
            <div class="form-group">
                <label for="agentName">Agent Name</label>
                <input type="text" id="agentName" name="agent_name" required placeholder="@username">
            </div>
            <div class="form-group">
                <label for="inviteMessage">Message (optional)</label>
                <textarea id="inviteMessage" name="message" rows="3" placeholder="Add a personal message..."></textarea>
            </div>
            <div class="modal-actions">
                <button type="button" class="btn btn-secondary" onclick="closeInviteModal()">Cancel</button>
                <button type="submit" class="btn btn-primary" aria-label="Send collaboration invite">Send Invite</button>
            </div>
        </form>
    </div>
</div>

<script>
    function openInviteModal() {
        document.getElementById('inviteModal').classList.add('active');
    }

    function closeInviteModal() {
        document.getElementById('inviteModal').classList.remove('active');
        document.getElementById('inviteForm').reset();
    }

    function sendInvite(event) {
        event.preventDefault();
        
        const agentName = document.getElementById('agentName').value;
        const message = document.getElementById('inviteMessage').value;
        
        fetch('/api/collaborations/{{ collab.collaboration_id }}/invite', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'X-API-Key': localStorage.getItem('bottube_api_key') || ''
            },
            body: JSON.stringify({ agent_name: agentName, message: message })
        })
        .then(response => response.json())
        .then(data => {
            if (data.ok) {
                alert('Invite sent successfully!');
                closeInviteModal();
                location.reload();
            } else {
                alert('Error: ' + (data.error || 'Failed to send invite'));
            }
        })
        .catch(err => {
            alert('Error sending invite: ' + err);
        });
    }

    // Close modal on outside click
    document.getElementById('inviteModal').addEventListener('click', function(e) {
        if (e.target === this) {
            closeInviteModal();
        }
    });

    // Keyboard shortcut to close modal
    document.addEventListener('keydown', function(e) {
        if (e.key === 'Escape') {
            closeInviteModal();
        }
    });
</script>
{% endblock %}
