{% extends 'client_portal/base.html' %}{% load portal_tags %}{% block content %}<a class="portal-back" href="{% url 'client_portal:services' %}">← Voltar aos serviços</a><div class="portal-detail-hero"><div><p>{{ service.get_service_type_display|upper }}</p><h2>{{ service.name }}</h2><span>{{ service.description|default:'Serviço gerido pela Kreate4Web.' }}</span></div><span class="status status--lg status--{{ service.status|status_tone }}">{{ service.get_status_display }}</span></div><div class="portal-grid portal-grid--3"><article class="portal-info"><small>Próxima renovação</small><strong>{{ service.next_renewal_date|pt_date }}</strong></article><article class="portal-info"><small>Periodicidade</small><strong>{{ service.get_billing_cycle_display }}</strong></article><article class="portal-info"><small>Renovação automática</small><strong>{% if service.auto_renew %}Ativa{% else %}Não ativa{% endif %}</strong></article></div><div class="portal-grid portal-grid--2"><section class="portal-card"><div class="portal-card-head"><h3>Histórico de renovações</h3></div><div class="portal-list">{% for item in renewals %}<div class="static"><div><strong>{{ item.due_date|pt_date }}</strong><small>{{ item.sale_amount|euro }}</small></div><span class="status status--{{ item.status|status_tone }}">{{ item.get_status_display }}</span></div>{% empty %}<div class="portal-empty">Sem histórico.</div>{% endfor %}</div></section><section class="portal-card"><div class="portal-card-head"><h3>Documentos</h3></div><div class="portal-list">{% for doc in documents %}<a href="{% url 'client_portal:document_download' doc.pk %}"><div><strong>{{ doc.title }}</strong><small>{{ doc.get_category_display }}</small></div><span>↓</span></a>{% empty %}<div class="portal-empty">Sem documentos disponíveis.</div>{% endfor %}</div></section></div><section class="portal-section-head portal-section-spaced"><div><h2>Monitorização</h2><span>Estado técnico dos endpoints associados a este serviço.</span></div></section><div class="portal-card-grid portal-monitor-client-grid">{% for monitor in monitors %}<article class="portal-service-card portal-monitor-client-card is-{{ monitor.status }}"><div class="portal-service-top"><span class="service-icon">◉</span><span class="status status--{{ monitor.status|status_tone }}">{{ monitor.get_status_display }}</span></div><h3>{{ monitor.name }}</h3><p>{{ monitor.url }}</p><dl><div><dt>HTTP</dt><dd>{{ monitor.last_http_status|default:"—" }}</dd></div><div><dt>Resposta</dt><dd>{% if monitor.last_response_ms %}{{ monitor.last_response_ms }} ms{% else %}—{% endif %}</dd></div><div><dt>Última verificação</dt><dd>{{ monitor.last_checked_at|date:"d/m/Y H:i"|default:"Por verificar" }}</dd></div></dl></article>{% empty %}<article class="portal-service-card"><h3>Sem monitorização visível</h3><p>Não existem endpoints publicados para este serviço.</p></article>{% endfor %}</div>{% endblock %}
