Files
tiku-backend.net/Tiku.Infrastructure/Persistence/Migrations/20260806020533_LockPracticeSessionQuestionV2.cs

308 lines
13 KiB
C#

using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Tiku.Infrastructure.Persistence.Migrations
{
/// <inheritdoc />
public partial class LockPracticeSessionQuestionV2 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "fk_practice_session_questions_question_versions_question_owner~",
table: "practice_session_questions");
migrationBuilder.DropForeignKey(
name: "fk_practice_session_questions_tenant_question_references_tenan~",
table: "practice_session_questions");
migrationBuilder.DropIndex(
name: "ix_practice_session_questions_question_owner_tenant_id_questio~",
table: "practice_session_questions");
migrationBuilder.DropIndex(
name: "ix_practice_session_questions_tenant_id_practice_session_id_co~",
table: "practice_session_questions");
migrationBuilder.DropIndex(
name: "ix_practice_session_questions_tenant_id_question_owner_tenant_~",
table: "practice_session_questions");
migrationBuilder.DropColumn(
name: "question_id",
table: "practice_session_questions");
migrationBuilder.DropColumn(
name: "question_reference_id",
table: "practice_session_questions");
migrationBuilder.DropColumn(
name: "question_version_id",
table: "practice_session_questions");
migrationBuilder.AlterColumn<Guid>(
name: "question_revision_id",
table: "practice_session_questions",
type: "uuid",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "uuid",
oldNullable: true);
migrationBuilder.AlterColumn<Guid>(
name: "question_placement_id",
table: "practice_session_questions",
type: "uuid",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "uuid",
oldNullable: true);
migrationBuilder.AlterColumn<Guid>(
name: "question_asset_id",
table: "practice_session_questions",
type: "uuid",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "uuid",
oldNullable: true);
migrationBuilder.AlterColumn<Guid>(
name: "content_release_question_id",
table: "practice_session_questions",
type: "uuid",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "uuid",
oldNullable: true);
migrationBuilder.AlterColumn<Guid>(
name: "assessment_policy_version_id",
table: "practice_session_questions",
type: "uuid",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "uuid",
oldNullable: true);
migrationBuilder.CreateIndex(
name: "ix_practice_session_questions_tenant_id_practice_session_id_co~",
table: "practice_session_questions",
columns: new[] { "tenant_id", "practice_session_id", "content_release_question_id" },
unique: true);
migrationBuilder.CreateIndex(
name: "ix_psq_assessment_policy",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "assessment_policy_version_id" });
migrationBuilder.CreateIndex(
name: "ix_psq_question_asset",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "question_asset_id" });
migrationBuilder.CreateIndex(
name: "ix_psq_question_placement",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "question_placement_id" });
migrationBuilder.CreateIndex(
name: "ix_psq_question_revision",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "question_asset_id", "question_revision_id" });
migrationBuilder.CreateIndex(
name: "ix_psq_release_question",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "content_release_question_id" });
migrationBuilder.AddForeignKey(
name: "fk_practice_session_questions_assessment_policy_versions_quest~",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "assessment_policy_version_id" },
principalTable: "assessment_policy_versions",
principalColumns: new[] { "tenant_id", "id" },
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "fk_practice_session_questions_content_release_questions_questi~",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "content_release_question_id" },
principalTable: "content_release_questions",
principalColumns: new[] { "tenant_id", "id" },
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "fk_practice_session_questions_question_assets_question_owner_t~",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "question_asset_id" },
principalTable: "question_assets",
principalColumns: new[] { "tenant_id", "id" },
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "fk_practice_session_questions_question_placements_question_own~",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "question_placement_id" },
principalTable: "question_placements",
principalColumns: new[] { "tenant_id", "id" },
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "fk_practice_session_questions_question_revisions_question_owne~",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "question_asset_id", "question_revision_id" },
principalTable: "question_revisions",
principalColumns: new[] { "tenant_id", "question_asset_id", "id" },
onDelete: ReferentialAction.Restrict);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "fk_practice_session_questions_assessment_policy_versions_quest~",
table: "practice_session_questions");
migrationBuilder.DropForeignKey(
name: "fk_practice_session_questions_content_release_questions_questi~",
table: "practice_session_questions");
migrationBuilder.DropForeignKey(
name: "fk_practice_session_questions_question_assets_question_owner_t~",
table: "practice_session_questions");
migrationBuilder.DropForeignKey(
name: "fk_practice_session_questions_question_placements_question_own~",
table: "practice_session_questions");
migrationBuilder.DropForeignKey(
name: "fk_practice_session_questions_question_revisions_question_owne~",
table: "practice_session_questions");
migrationBuilder.DropIndex(
name: "ix_practice_session_questions_tenant_id_practice_session_id_co~",
table: "practice_session_questions");
migrationBuilder.DropIndex(
name: "ix_psq_assessment_policy",
table: "practice_session_questions");
migrationBuilder.DropIndex(
name: "ix_psq_question_asset",
table: "practice_session_questions");
migrationBuilder.DropIndex(
name: "ix_psq_question_placement",
table: "practice_session_questions");
migrationBuilder.DropIndex(
name: "ix_psq_question_revision",
table: "practice_session_questions");
migrationBuilder.DropIndex(
name: "ix_psq_release_question",
table: "practice_session_questions");
migrationBuilder.AlterColumn<Guid>(
name: "question_revision_id",
table: "practice_session_questions",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AlterColumn<Guid>(
name: "question_placement_id",
table: "practice_session_questions",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AlterColumn<Guid>(
name: "question_asset_id",
table: "practice_session_questions",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AlterColumn<Guid>(
name: "content_release_question_id",
table: "practice_session_questions",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AlterColumn<Guid>(
name: "assessment_policy_version_id",
table: "practice_session_questions",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AddColumn<Guid>(
name: "question_id",
table: "practice_session_questions",
type: "uuid",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "question_reference_id",
table: "practice_session_questions",
type: "uuid",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "question_version_id",
table: "practice_session_questions",
type: "uuid",
nullable: true);
migrationBuilder.CreateIndex(
name: "ix_practice_session_questions_question_owner_tenant_id_questio~",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "question_id", "question_version_id" });
migrationBuilder.CreateIndex(
name: "ix_practice_session_questions_tenant_id_practice_session_id_co~",
table: "practice_session_questions",
columns: new[] { "tenant_id", "practice_session_id", "content_release_question_id" },
unique: true,
filter: "content_release_question_id is not null");
migrationBuilder.CreateIndex(
name: "ix_practice_session_questions_tenant_id_question_owner_tenant_~",
table: "practice_session_questions",
columns: new[] { "tenant_id", "question_owner_tenant_id", "question_id" });
migrationBuilder.AddForeignKey(
name: "fk_practice_session_questions_question_versions_question_owner~",
table: "practice_session_questions",
columns: new[] { "question_owner_tenant_id", "question_id", "question_version_id" },
principalTable: "question_versions",
principalColumns: new[] { "tenant_id", "question_id", "id" },
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "fk_practice_session_questions_tenant_question_references_tenan~",
table: "practice_session_questions",
columns: new[] { "tenant_id", "question_owner_tenant_id", "question_id" },
principalTable: "tenant_question_references",
principalColumns: new[] { "tenant_id", "question_owner_tenant_id", "question_id" },
onDelete: ReferentialAction.Restrict);
}
}
}