This commit is contained in:
Nadegamra
2021-09-09 20:32:56 +03:00
parent a3b4bb2e30
commit b447434a47
8 changed files with 675 additions and 11 deletions

View File

@@ -0,0 +1,226 @@
// <auto-generated />
using System;
using KTUSAPS.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace KTUSAPS.Data.Migrations
{
[DbContext(typeof(SAPSDataContext))]
[Migration("20210909173149_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("Relational:MaxIdentifierLength", 64)
.HasAnnotation("ProductVersion", "5.0.9");
modelBuilder.Entity("KTUSAPS.Data.Model.Admin", b =>
{
b.Property<string>("UserId")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("Comment")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.HasKey("UserId");
b.ToTable("Admins");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Issue", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property<DateTime>("Created")
.HasColumnType("datetime(6)");
b.Property<string>("Description")
.HasColumnType("longtext");
b.Property<string>("Email")
.HasMaxLength(320)
.HasColumnType("varchar(320)");
b.Property<bool>("Publishable")
.HasColumnType("tinyint(1)");
b.Property<bool>("Solved")
.HasColumnType("tinyint(1)");
b.Property<string>("UserID")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.HasKey("Id");
b.ToTable("Issues");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedFeedback", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property<DateTime>("Created")
.HasColumnType("datetime(6)");
b.Property<string>("FeedbackEn")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("FeedbackLt")
.IsRequired()
.HasColumnType("longtext");
b.Property<int?>("IssueId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("IssueId")
.IsUnique();
b.ToTable("PublishedFeedbacks");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedProblem", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property<DateTime>("Created")
.HasColumnType("datetime(6)");
b.Property<int?>("IssueId")
.HasColumnType("int");
b.Property<string>("ProblemEn")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("ProblemLt")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("ResponseEn")
.HasColumnType("longtext");
b.Property<string>("ResponseLt")
.HasColumnType("longtext");
b.Property<int?>("SolutionId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("IssueId")
.IsUnique();
b.HasIndex("SolutionId")
.IsUnique();
b.ToTable("PublishedProblems");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Solution", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property<DateTime>("Created")
.HasColumnType("datetime(6)");
b.Property<string>("SolutionEn")
.HasColumnType("longtext");
b.Property<string>("SolutionLt")
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("Solutions");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Vote", b =>
{
b.Property<string>("UserId")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<int>("ProblemId")
.HasColumnType("int");
b.HasKey("UserId", "ProblemId");
b.HasIndex("ProblemId");
b.ToTable("Votes");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedFeedback", b =>
{
b.HasOne("KTUSAPS.Data.Model.Issue", "Issue")
.WithOne("Feedback")
.HasForeignKey("KTUSAPS.Data.Model.PublishedFeedback", "IssueId");
b.Navigation("Issue");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedProblem", b =>
{
b.HasOne("KTUSAPS.Data.Model.Issue", "Issue")
.WithOne("Problem")
.HasForeignKey("KTUSAPS.Data.Model.PublishedProblem", "IssueId");
b.HasOne("KTUSAPS.Data.Model.Solution", "Solution")
.WithOne("Problem")
.HasForeignKey("KTUSAPS.Data.Model.PublishedProblem", "SolutionId");
b.Navigation("Issue");
b.Navigation("Solution");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Vote", b =>
{
b.HasOne("KTUSAPS.Data.Model.PublishedProblem", "Problem")
.WithMany("Votes")
.HasForeignKey("ProblemId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Problem");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Issue", b =>
{
b.Navigation("Feedback");
b.Navigation("Problem");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedProblem", b =>
{
b.Navigation("Votes");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Solution", b =>
{
b.Navigation("Problem");
});
#pragma warning restore 612, 618
}
}
}

View File

@@ -0,0 +1,195 @@
using System;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
namespace KTUSAPS.Data.Migrations
{
public partial class Initial : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterDatabase()
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "Admins",
columns: table => new
{
UserId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Comment = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_Admins", x => x.UserId);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "Issues",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
UserID = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Email = table.Column<string>(type: "varchar(320)", maxLength: 320, nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Publishable = table.Column<bool>(type: "tinyint(1)", nullable: false),
Solved = table.Column<bool>(type: "tinyint(1)", nullable: false),
Created = table.Column<DateTime>(type: "datetime(6)", nullable: false),
Description = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_Issues", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "Solutions",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
SolutionLt = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
SolutionEn = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Created = table.Column<DateTime>(type: "datetime(6)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Solutions", x => x.Id);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "PublishedFeedbacks",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
FeedbackLt = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
FeedbackEn = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Created = table.Column<DateTime>(type: "datetime(6)", nullable: false),
IssueId = table.Column<int>(type: "int", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_PublishedFeedbacks", x => x.Id);
table.ForeignKey(
name: "FK_PublishedFeedbacks_Issues_IssueId",
column: x => x.IssueId,
principalTable: "Issues",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "PublishedProblems",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
ProblemLt = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ProblemEn = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ResponseLt = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
ResponseEn = table.Column<string>(type: "longtext", nullable: true)
.Annotation("MySql:CharSet", "utf8mb4"),
Created = table.Column<DateTime>(type: "datetime(6)", nullable: false),
IssueId = table.Column<int>(type: "int", nullable: true),
SolutionId = table.Column<int>(type: "int", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_PublishedProblems", x => x.Id);
table.ForeignKey(
name: "FK_PublishedProblems_Issues_IssueId",
column: x => x.IssueId,
principalTable: "Issues",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_PublishedProblems_Solutions_SolutionId",
column: x => x.SolutionId,
principalTable: "Solutions",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "Votes",
columns: table => new
{
UserId = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ProblemId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Votes", x => new { x.UserId, x.ProblemId });
table.ForeignKey(
name: "FK_Votes_PublishedProblems_ProblemId",
column: x => x.ProblemId,
principalTable: "PublishedProblems",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateIndex(
name: "IX_PublishedFeedbacks_IssueId",
table: "PublishedFeedbacks",
column: "IssueId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_PublishedProblems_IssueId",
table: "PublishedProblems",
column: "IssueId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_PublishedProblems_SolutionId",
table: "PublishedProblems",
column: "SolutionId",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Votes_ProblemId",
table: "Votes",
column: "ProblemId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Admins");
migrationBuilder.DropTable(
name: "PublishedFeedbacks");
migrationBuilder.DropTable(
name: "Votes");
migrationBuilder.DropTable(
name: "PublishedProblems");
migrationBuilder.DropTable(
name: "Issues");
migrationBuilder.DropTable(
name: "Solutions");
}
}
}

View File

@@ -0,0 +1,224 @@
// <auto-generated />
using System;
using KTUSAPS.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace KTUSAPS.Data.Migrations
{
[DbContext(typeof(SAPSDataContext))]
partial class SAPSDataContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("Relational:MaxIdentifierLength", 64)
.HasAnnotation("ProductVersion", "5.0.9");
modelBuilder.Entity("KTUSAPS.Data.Model.Admin", b =>
{
b.Property<string>("UserId")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<string>("Comment")
.HasMaxLength(256)
.HasColumnType("varchar(256)");
b.HasKey("UserId");
b.ToTable("Admins");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Issue", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property<DateTime>("Created")
.HasColumnType("datetime(6)");
b.Property<string>("Description")
.HasColumnType("longtext");
b.Property<string>("Email")
.HasMaxLength(320)
.HasColumnType("varchar(320)");
b.Property<bool>("Publishable")
.HasColumnType("tinyint(1)");
b.Property<bool>("Solved")
.HasColumnType("tinyint(1)");
b.Property<string>("UserID")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.HasKey("Id");
b.ToTable("Issues");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedFeedback", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property<DateTime>("Created")
.HasColumnType("datetime(6)");
b.Property<string>("FeedbackEn")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("FeedbackLt")
.IsRequired()
.HasColumnType("longtext");
b.Property<int?>("IssueId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("IssueId")
.IsUnique();
b.ToTable("PublishedFeedbacks");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedProblem", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property<DateTime>("Created")
.HasColumnType("datetime(6)");
b.Property<int?>("IssueId")
.HasColumnType("int");
b.Property<string>("ProblemEn")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("ProblemLt")
.IsRequired()
.HasColumnType("longtext");
b.Property<string>("ResponseEn")
.HasColumnType("longtext");
b.Property<string>("ResponseLt")
.HasColumnType("longtext");
b.Property<int?>("SolutionId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("IssueId")
.IsUnique();
b.HasIndex("SolutionId")
.IsUnique();
b.ToTable("PublishedProblems");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Solution", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
b.Property<DateTime>("Created")
.HasColumnType("datetime(6)");
b.Property<string>("SolutionEn")
.HasColumnType("longtext");
b.Property<string>("SolutionLt")
.HasColumnType("longtext");
b.HasKey("Id");
b.ToTable("Solutions");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Vote", b =>
{
b.Property<string>("UserId")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property<int>("ProblemId")
.HasColumnType("int");
b.HasKey("UserId", "ProblemId");
b.HasIndex("ProblemId");
b.ToTable("Votes");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedFeedback", b =>
{
b.HasOne("KTUSAPS.Data.Model.Issue", "Issue")
.WithOne("Feedback")
.HasForeignKey("KTUSAPS.Data.Model.PublishedFeedback", "IssueId");
b.Navigation("Issue");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedProblem", b =>
{
b.HasOne("KTUSAPS.Data.Model.Issue", "Issue")
.WithOne("Problem")
.HasForeignKey("KTUSAPS.Data.Model.PublishedProblem", "IssueId");
b.HasOne("KTUSAPS.Data.Model.Solution", "Solution")
.WithOne("Problem")
.HasForeignKey("KTUSAPS.Data.Model.PublishedProblem", "SolutionId");
b.Navigation("Issue");
b.Navigation("Solution");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Vote", b =>
{
b.HasOne("KTUSAPS.Data.Model.PublishedProblem", "Problem")
.WithMany("Votes")
.HasForeignKey("ProblemId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Problem");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Issue", b =>
{
b.Navigation("Feedback");
b.Navigation("Problem");
});
modelBuilder.Entity("KTUSAPS.Data.Model.PublishedProblem", b =>
{
b.Navigation("Votes");
});
modelBuilder.Entity("KTUSAPS.Data.Model.Solution", b =>
{
b.Navigation("Problem");
});
#pragma warning restore 612, 618
}
}
}