Files
Radicade/Server/Migrations/20260921150000_AddSubRoomPermissions.cs
T
2026-10-16 23:33:13 -07:00

42 lines
1.4 KiB
C#

using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Infrastructure;
using RadicadeServer.DB;
#nullable disable
namespace RadicadeServer.Migrations;
[DbContext(typeof(RecDBContext))]
[Migration("20260921150000_AddSubRoomPermissions")]
public partial class AddSubRoomPermissions : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(@"
IF OBJECT_ID(N'dbo.SubRoomPermissions', N'U') IS NULL
BEGIN
CREATE TABLE [dbo].[SubRoomPermissions] (
[Id] bigint IDENTITY(1,1) NOT NULL,
[subRoomId] bigint NOT NULL,
[permission] nvarchar(128) NOT NULL,
[role] bigint NOT NULL,
[type] int NOT NULL,
[value] nvarchar(max) NOT NULL,
CONSTRAINT [PK_SubRoomPermissions] PRIMARY KEY CLUSTERED ([Id] ASC)
);
-- The client addresses an entry by its (permission, role) pair, so that pair is unique:
-- re-sending it updates the stored row instead of adding a second one with a new value.
CREATE UNIQUE INDEX [IX_SubRoomPermissions_subRoomId_permission_role]
ON [dbo].[SubRoomPermissions] ([subRoomId], [permission], [role]);
END");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql(@"
IF OBJECT_ID(N'dbo.SubRoomPermissions', N'U') IS NOT NULL
DROP TABLE [dbo].[SubRoomPermissions];");
}
}