using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Infrastructure; using RadicadeServer.DB; #nullable disable namespace RadicadeServer.Migrations; [DbContext(typeof(RecDBContext))] [Migration("20260921160000_AddRoomComments")] public partial class AddRoomComments : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.Sql(@" IF OBJECT_ID(N'dbo.RoomComments', N'U') IS NULL BEGIN CREATE TABLE [dbo].[RoomComments] ( [Id] bigint IDENTITY(1,1) NOT NULL, [RoomId] bigint NOT NULL, [CreatorAccountId] bigint NOT NULL, [Comment] nvarchar(max) NOT NULL, [CommentType] nvarchar(64) NOT NULL, [PositionX] real NULL, [PositionY] real NULL, [PositionZ] real NULL, [CreatedAt] datetime2 NOT NULL, CONSTRAINT [PK_RoomComments] PRIMARY KEY CLUSTERED ([Id] ASC) ); -- The two lookups are by room (the room page, and the admin panel listing a room's comments) -- and by author (moderating one account's comments). CREATE INDEX [IX_RoomComments_RoomId] ON [dbo].[RoomComments] ([RoomId]); CREATE INDEX [IX_RoomComments_CreatorAccountId] ON [dbo].[RoomComments] ([CreatorAccountId]); END"); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.Sql(@" IF OBJECT_ID(N'dbo.RoomComments', N'U') IS NOT NULL DROP TABLE [dbo].[RoomComments];"); } }