@page "/superadmin/roles"
@layout SuperAdminLayout
@inherits SuperAdminBase
@inject IamApiService IamApi
@using WebClientTpos.Client.Services

<PageTitle>Vai trò — aPOS Super Admin</PageTitle>

<div class="sa-topbar">
    <div class="sa-topbar__left">
        <h1 class="sa-topbar__title">Quản lý vai trò</h1>
        <p class="sa-topbar__subtitle">Vai trò hệ thống và quyền hạn trên toàn nền tảng</p>
    </div>
</div>

<div class="sa-content">
    <div class="sa-panel">
        @if (_roles.Any())
        {
            <table class="sa-table">
                <thead>
                    <tr>
                        <th>Tên vai trò</th>
                        <th>Mô tả</th>
                        <th>Loại</th>
                        <th>Người dùng</th>
                        <th>Quyền hạn</th>
                        <th>Ngày tạo</th>
                    </tr>
                </thead>
                <tbody>
                    @foreach (var role in _roles)
                    {
                        <tr>
                            <td style="font-weight:600;">@role.Name</td>
                            <td>@(role.Description ?? "—")</td>
                            <td>
                                <span class="sa-badge @(role.IsSystem ? "sa-badge--info" : "sa-badge--neutral")">
                                    @(role.IsSystem ? "Hệ thống" : "Tùy chỉnh")
                                </span>
                            </td>
                            <td>@(role.UserCount ?? 0)</td>
                            <td>@(role.Permissions?.Count ?? 0) quyền</td>
                            <td>@role.CreatedAt.ToString("dd/MM/yyyy")</td>
                        </tr>
                    }
                </tbody>
            </table>
        }
        else
        {
            <div class="sa-empty"><p>Đang tải vai trò...</p></div>
        }
    </div>
</div>

@code {
    private List<IamApiService.RoleDto> _roles = new();

    protected override async Task OnInitializedAsync()
    {
        await base.OnInitializedAsync();
        _roles = await IamApi.GetRolesAsync();
    }
}
