using Microsoft.EntityFrameworkCore.Migrations;

#nullable disable

namespace foodmarket.Infrastructure.Persistence.Migrations
{
    /// <summary>Идемпотентный фикс: системными остаются только «Администратор»
    /// и «Кассир», остальные демоутятся в кастомные. Кассирский набор прав
    /// перетряхивается на минимально-достаточный POS-набор. На чистой БД
    /// сидер сразу создаст роли в правильных статусах; миграция нужна для
    /// баз, где Phase4 уже отработал по старой схеме.</summary>
    public partial class Phase4b_RolesSimplify : Migration
    {
        protected override void Up(MigrationBuilder b)
        {
            b.Sql(@"
                UPDATE public.employee_roles
                SET ""IsSystem"" = false
                WHERE ""Name"" NOT IN ('Администратор', 'Кассир');
            ");
            b.Sql(@"
                UPDATE public.employee_roles
                SET permissions = '{""productsView"":true,""stocksView"":true,""retailSalesOperate"":true}'::jsonb
                WHERE ""Name"" = 'Кассир' AND ""IsSystem"" = true;
            ");
        }

        protected override void Down(MigrationBuilder b)
        {
            // No-op: возвращать роли в IsSystem=true автоматически нельзя,
            // юзер мог переименовать или подкрутить permissions.
        }
    }
}
