Files
agrynco 1631786ce2 feat(push): add service-owned firebase channels and delivery
Add push contracts, provider delivery and channel diagnostics. Link email channels to services and document migration and validation.

Ref: IT-1074
2026-10-24 12:31:35 +03:00

41 lines
1.6 KiB
Plaintext

@using HrynCo.NotificationService.DAL.Abstract.PushChannels
@model IReadOnlyList<PushChannel>
@{ ViewData["Title"] = "Push Channels"; }
<div class="page-header">
<h2><i class="bi bi-phone"></i> Push Channels</h2>
<a href="/admin/push-channels/create" class="btn btn-primary btn-sm">Create New Channel</a>
</div>
@if (Model.Count == 0)
{
<div class="card shadow-sm table-card">
<div class="empty-state">
<i class="bi bi-phone"></i>
<p class="mt-2 mb-0">No push channels found.</p>
<a href="/admin/push-channels/create" class="btn btn-primary btn-sm mt-3">Create First Channel</a>
</div>
</div>
}
else
{
<div class="card shadow-sm table-card">
<div class="table-responsive">
<table class="table table-hover admin-data-table table-sm mb-0">
<thead><tr><th scope="col">Service</th><th scope="col">Firebase Project ID</th><th scope="col">Status</th><th scope="col">Actions</th></tr></thead>
<tbody>
@foreach (var channel in Model)
{
<tr>
<td>@channel.ServiceName</td>
<td>@channel.FirebaseProjectId</td>
<td><span class="badge @(channel.IsActive ? "bg-success" : "bg-secondary")">@(channel.IsActive ? "Active" : "Inactive")</span></td>
<td><a href="/admin/push-channels/@channel.Id" class="btn btn-sm btn-link" aria-label="Edit push channel for @channel.ServiceName">Edit</a></td>
</tr>
}
</tbody>
</table>
</div>
</div>
}