📄 MatDenDagen/Infrastructure/Storage/Database/Migrations/20260502114950_InitialCreate.cs
using System;
using Microsoft.EntityFrameworkCore.Migrations;

#nullable disable

namespace MatDenDagen.Infrastructure.Storage.Database.Migrations
{
    /// <inheritdoc />
    public partial class InitialCreate : Migration
    {
        /// <inheritdoc />
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.CreateTable(
                name: "Questions",
                columns: table => new
                {
                    Id = table.Column<Guid>(type: "TEXT", nullable: false),
                    Text = table.Column<string>(type: "TEXT", nullable: false),
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_Questions", x => x.Id);
                }
            );

            migrationBuilder.CreateTable(
                name: "Submissions",
                columns: table => new { Id = table.Column<Guid>(type: "TEXT", nullable: false) },
                constraints: table =>
                {
                    table.PrimaryKey("PK_Submissions", x => x.Id);
                }
            );

            migrationBuilder.CreateTable(
                name: "Answer",
                columns: table => new
                {
                    Id = table.Column<Guid>(type: "TEXT", nullable: false),
                    QuestionId = table.Column<Guid>(type: "TEXT", nullable: false),
                    Text = table.Column<string>(type: "TEXT", nullable: false),
                    SubmissionId = table.Column<Guid>(type: "TEXT", nullable: true),
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_Answer", x => x.Id);
                    table.ForeignKey(
                        name: "FK_Answer_Questions_QuestionId",
                        column: x => x.QuestionId,
                        principalTable: "Questions",
                        principalColumn: "Id",
                        onDelete: ReferentialAction.Cascade
                    );
                    table.ForeignKey(
                        name: "FK_Answer_Submissions_SubmissionId",
                        column: x => x.SubmissionId,
                        principalTable: "Submissions",
                        principalColumn: "Id"
                    );
                }
            );

            migrationBuilder.CreateIndex(name: "IX_Answer_QuestionId", table: "Answer", column: "QuestionId");

            migrationBuilder.CreateIndex(name: "IX_Answer_SubmissionId", table: "Answer", column: "SubmissionId");
        }

        /// <inheritdoc />
        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropTable(name: "Answer");

            migrationBuilder.DropTable(name: "Questions");

            migrationBuilder.DropTable(name: "Submissions");
        }
    }
}