Database
This commit is contained in:
@@ -44,7 +44,7 @@
|
|||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
<a
|
<a
|
||||||
href="https://login.microsoftonline.com/3415f2f7-f5a8-4092-b52a-003aaf844853/oauth2/v2.0/authorize?client_id=5931fda0-e9e0-4754-80c2-18bcb9d9561a&response_type=id_token&scope=openid email profile&nonce=aaaa"
|
href="https://login.microsoftonline.com/3415f2f7-f5a8-4092-b52a-003aaf844853/oauth2/v2.0/authorize?client_id=5931fda0-e9e0-4754-80c2-18bcb9d9561a&response_type=id_token&scope=openid email&nonce=aaaa"
|
||||||
>Login</a
|
>Login</a
|
||||||
>
|
>
|
||||||
</ul>
|
</ul>
|
||||||
|
226
KTUSAPS.Data/Migrations/20210909173149_Initial.Designer.cs
generated
Normal file
226
KTUSAPS.Data/Migrations/20210909173149_Initial.Designer.cs
generated
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
195
KTUSAPS.Data/Migrations/20210909173149_Initial.cs
Normal file
195
KTUSAPS.Data/Migrations/20210909173149_Initial.cs
Normal 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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
224
KTUSAPS.Data/Migrations/SAPSDataContextModelSnapshot.cs
Normal file
224
KTUSAPS.Data/Migrations/SAPSDataContextModelSnapshot.cs
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
17
KTUSAPS.Data/Model/Admin.cs
Normal file
17
KTUSAPS.Data/Model/Admin.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace KTUSAPS.Data.Model
|
||||||
|
{
|
||||||
|
public class Admin
|
||||||
|
{
|
||||||
|
[Key, MaxLength(64)]
|
||||||
|
public string UserId { get; set; }
|
||||||
|
[MaxLength(256)]
|
||||||
|
public string Comment { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@@ -14,8 +14,8 @@ namespace KTUSAPS.Data.Model
|
|||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
[MaxLength(64)]
|
[MaxLength(64)]
|
||||||
public string UserID { get; set; }
|
public string UserID { get; set; }
|
||||||
|
[MaxLength(320)]
|
||||||
public string Email { get; set; }
|
public string Email { get; set; }
|
||||||
public bool Anonimous { get; set; }
|
|
||||||
public bool Publishable { get; set; }
|
public bool Publishable { get; set; }
|
||||||
public bool Solved { get; set; } = false;
|
public bool Solved { get; set; } = false;
|
||||||
public DateTime Created { get; set; }
|
public DateTime Created { get; set; }
|
||||||
|
@@ -1,18 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ClassDiagram MajorVersion="1" MinorVersion="1">
|
<ClassDiagram MajorVersion="1" MinorVersion="1">
|
||||||
<Class Name="KTUSAPS.Data.Model.Issue">
|
<Class Name="KTUSAPS.Data.Model.Issue">
|
||||||
<Position X="0.75" Y="1.25" Width="1.5" />
|
<Position X="0.5" Y="0.75" Width="1.5" />
|
||||||
<TypeIdentifier>
|
<TypeIdentifier>
|
||||||
<HashCode>AAACAAJAACAgAAAAAAACAAgIAAEAAAQAAAAAAAAAAAA=</HashCode>
|
<HashCode>AAACAAJAACAgAAAAAAACAAgIAAAAAAQAAAAAAAAAAAA=</HashCode>
|
||||||
<FileName>Model\Issue.cs</FileName>
|
<FileName>Model\Issue.cs</FileName>
|
||||||
</TypeIdentifier>
|
</TypeIdentifier>
|
||||||
<ShowAsAssociation>
|
<ShowAsAssociation>
|
||||||
<Property Name="Feedback" />
|
|
||||||
<Property Name="Problem" />
|
<Property Name="Problem" />
|
||||||
|
<Property Name="Feedback" />
|
||||||
</ShowAsAssociation>
|
</ShowAsAssociation>
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="KTUSAPS.Data.Model.PublishedFeedback">
|
<Class Name="KTUSAPS.Data.Model.PublishedFeedback">
|
||||||
<Position X="3.75" Y="3.75" Width="1.5" />
|
<Position X="2.75" Y="3.75" Width="1.5" />
|
||||||
<TypeIdentifier>
|
<TypeIdentifier>
|
||||||
<HashCode>AAECAAAAAAAAAAAACAIAAAAAAAAAAAQAEAAAAAAAAAA=</HashCode>
|
<HashCode>AAECAAAAAAAAAAAACAIAAAAAAAAAAAQAEAAAAAAAAAA=</HashCode>
|
||||||
<FileName>Model\PublishedFeedback.cs</FileName>
|
<FileName>Model\PublishedFeedback.cs</FileName>
|
||||||
@@ -22,21 +22,21 @@
|
|||||||
</ShowAsAssociation>
|
</ShowAsAssociation>
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="KTUSAPS.Data.Model.PublishedProblem">
|
<Class Name="KTUSAPS.Data.Model.PublishedProblem">
|
||||||
<Position X="3.75" Y="0.5" Width="1.5" />
|
<Position X="2.75" Y="0.75" Width="1.5" />
|
||||||
<TypeIdentifier>
|
<TypeIdentifier>
|
||||||
<HashCode>ACECABAAAAEAAAgAAAABAAAAEAAAQAQAEAAAAAAAAAA=</HashCode>
|
<HashCode>ACECABAAAAEAAAgAAAABAAAAEAAAQAQAEAAAAAAAAAA=</HashCode>
|
||||||
<FileName>Model\PublishedProblem.cs</FileName>
|
<FileName>Model\PublishedProblem.cs</FileName>
|
||||||
</TypeIdentifier>
|
</TypeIdentifier>
|
||||||
<ShowAsAssociation>
|
<ShowAsAssociation>
|
||||||
<Property Name="Solution" />
|
|
||||||
<Property Name="Issue" />
|
<Property Name="Issue" />
|
||||||
|
<Property Name="Solution" />
|
||||||
</ShowAsAssociation>
|
</ShowAsAssociation>
|
||||||
<ShowAsCollectionAssociation>
|
<ShowAsCollectionAssociation>
|
||||||
<Property Name="Votes" />
|
<Property Name="Votes" />
|
||||||
</ShowAsCollectionAssociation>
|
</ShowAsCollectionAssociation>
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="KTUSAPS.Data.Model.Solution">
|
<Class Name="KTUSAPS.Data.Model.Solution">
|
||||||
<Position X="6.5" Y="0.5" Width="1.5" />
|
<Position X="6" Y="0.5" Width="1.5" />
|
||||||
<TypeIdentifier>
|
<TypeIdentifier>
|
||||||
<HashCode>AAACAAIABAAAAQAAAAAAAAAAAAAAAAQAAAAAAAAAAAA=</HashCode>
|
<HashCode>AAACAAIABAAAAQAAAAAAAAAAAAAAAAQAAAAAAAAAAAA=</HashCode>
|
||||||
<FileName>Model\Solution.cs</FileName>
|
<FileName>Model\Solution.cs</FileName>
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
</ShowAsAssociation>
|
</ShowAsAssociation>
|
||||||
</Class>
|
</Class>
|
||||||
<Class Name="KTUSAPS.Data.Model.Vote">
|
<Class Name="KTUSAPS.Data.Model.Vote">
|
||||||
<Position X="6.5" Y="2.25" Width="1.5" />
|
<Position X="6" Y="2.5" Width="1.5" />
|
||||||
<TypeIdentifier>
|
<TypeIdentifier>
|
||||||
<HashCode>AAAAAAIAAAAAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
<HashCode>AAAAAAIAAAAAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAA=</HashCode>
|
||||||
<FileName>Model\Vote.cs</FileName>
|
<FileName>Model\Vote.cs</FileName>
|
@@ -22,7 +22,7 @@ namespace KTUSAPS.Data
|
|||||||
{
|
{
|
||||||
if (!optionsBuilder.IsConfigured)
|
if (!optionsBuilder.IsConfigured)
|
||||||
{
|
{
|
||||||
optionsBuilder.UseMySql("Server=localhost;User=samokdev;Password=;Database=samok_dev", new MariaDbServerVersion(new Version(10, 6, 3)));
|
optionsBuilder.UseMySql("Server=localhost;User=saps;Password=;Database=saps_dev", new MariaDbServerVersion(new Version(10, 6, 3)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,6 +31,8 @@ namespace KTUSAPS.Data
|
|||||||
public DbSet<PublishedProblem> PublishedProblems { get; set; }
|
public DbSet<PublishedProblem> PublishedProblems { get; set; }
|
||||||
public DbSet<Solution> Solutions { get; set; }
|
public DbSet<Solution> Solutions { get; set; }
|
||||||
public DbSet<Vote> Votes { get; set; }
|
public DbSet<Vote> Votes { get; set; }
|
||||||
|
public DbSet<Admin> Admins { get; set; }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user