aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BackEnd/Timeline/Entities/UserAvatarEntity.cs1
-rw-r--r--BackEnd/Timeline/Entities/UserEntity.cs5
-rw-r--r--BackEnd/Timeline/Entities/UserPermissionEntity.cs21
-rw-r--r--BackEnd/Timeline/Migrations/20201112084015_AddUserPermission.Designer.cs407
-rw-r--r--BackEnd/Timeline/Migrations/20201112084015_AddUserPermission.cs41
-rw-r--r--BackEnd/Timeline/Migrations/DatabaseContextModelSnapshot.cs234
6 files changed, 623 insertions, 86 deletions
diff --git a/BackEnd/Timeline/Entities/UserAvatarEntity.cs b/BackEnd/Timeline/Entities/UserAvatarEntity.cs
index 3c2720f7..96a8e3ff 100644
--- a/BackEnd/Timeline/Entities/UserAvatarEntity.cs
+++ b/BackEnd/Timeline/Entities/UserAvatarEntity.cs
@@ -4,7 +4,6 @@ using System.ComponentModel.DataAnnotations.Schema;
namespace Timeline.Entities
{
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1819:Properties should not return arrays", Justification = "This is data base entity.")]
[Table("user_avatars")]
public class UserAvatarEntity
{
diff --git a/BackEnd/Timeline/Entities/UserEntity.cs b/BackEnd/Timeline/Entities/UserEntity.cs
index 0cfaa335..83fe9aea 100644
--- a/BackEnd/Timeline/Entities/UserEntity.cs
+++ b/BackEnd/Timeline/Entities/UserEntity.cs
@@ -11,7 +11,6 @@ namespace Timeline.Entities
public const string User = "user";
}
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "This is an entity class.")]
[Table("users")]
public class UserEntity
{
@@ -47,10 +46,14 @@ namespace Timeline.Entities
public UserAvatarEntity? Avatar { get; set; }
+#pragma warning disable CA2227 // Collection properties should be read only
+ public List<UserPermissionEntity> Permissions { get; set; } = default!;
+
public List<TimelineEntity> Timelines { get; set; } = default!;
public List<TimelinePostEntity> TimelinePosts { get; set; } = default!;
public List<TimelineMemberEntity> TimelinesJoined { get; set; } = default!;
+#pragma warning restore CA2227 // Collection properties should be read only
}
}
diff --git a/BackEnd/Timeline/Entities/UserPermissionEntity.cs b/BackEnd/Timeline/Entities/UserPermissionEntity.cs
new file mode 100644
index 00000000..395ad0bd
--- /dev/null
+++ b/BackEnd/Timeline/Entities/UserPermissionEntity.cs
@@ -0,0 +1,21 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace Timeline.Entities
+{
+ [Table("user_permission")]
+ public class UserPermissionEntity
+ {
+ [Column("id"), Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
+ public long Id { get; set; }
+
+ [Column("user_id")]
+ public long UserId { get; set; }
+
+ [ForeignKey(nameof(UserId))]
+ public UserEntity User { get; set; } = default!;
+
+ [Column("permission")]
+ public string Permission { get; set; } = default!;
+ }
+}
diff --git a/BackEnd/Timeline/Migrations/20201112084015_AddUserPermission.Designer.cs b/BackEnd/Timeline/Migrations/20201112084015_AddUserPermission.Designer.cs
new file mode 100644
index 00000000..54a480c4
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20201112084015_AddUserPermission.Designer.cs
@@ -0,0 +1,407 @@
+// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Timeline.Entities;
+
+namespace Timeline.Migrations
+{
+ [DbContext(typeof(DatabaseContext))]
+ [Migration("20201112084015_AddUserPermission")]
+ partial class AddUserPermission
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "5.0.0");
+
+ modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
+
+ b.Property<byte[]>("Data")
+ .IsRequired()
+ .HasColumnType("BLOB")
+ .HasColumnName("data");
+
+ b.Property<int>("Ref")
+ .HasColumnType("INTEGER")
+ .HasColumnName("ref");
+
+ b.Property<string>("Tag")
+ .IsRequired()
+ .HasColumnType("TEXT")
+ .HasColumnName("tag");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Tag")
+ .IsUnique();
+
+ b.ToTable("data");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.JwtTokenEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
+
+ b.Property<byte[]>("Key")
+ .IsRequired()
+ .HasColumnType("BLOB")
+ .HasColumnName("key");
+
+ b.HasKey("Id");
+
+ b.ToTable("jwt_token");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
+
+ b.Property<DateTime>("CreateTime")
+ .HasColumnType("TEXT")
+ .HasColumnName("create_time");
+
+ b.Property<long>("CurrentPostLocalId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("current_post_local_id");
+
+ b.Property<string>("Description")
+ .HasColumnType("TEXT")
+ .HasColumnName("description");
+
+ b.Property<DateTime>("LastModified")
+ .HasColumnType("TEXT")
+ .HasColumnName("last_modified");
+
+ b.Property<string>("Name")
+ .HasColumnType("TEXT")
+ .HasColumnName("name");
+
+ b.Property<DateTime>("NameLastModified")
+ .HasColumnType("TEXT")
+ .HasColumnName("name_last_modified");
+
+ b.Property<long>("OwnerId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("owner");
+
+ b.Property<string>("Title")
+ .HasColumnType("TEXT")
+ .HasColumnName("title");
+
+ b.Property<string>("UniqueId")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT")
+ .HasColumnName("unique_id")
+ .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+ b.Property<int>("Visibility")
+ .HasColumnType("INTEGER")
+ .HasColumnName("visibility");
+
+ b.HasKey("Id");
+
+ b.HasIndex("OwnerId");
+
+ b.ToTable("timelines");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
+
+ b.Property<long>("TimelineId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("timeline");
+
+ b.Property<long>("UserId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("user");
+
+ b.HasKey("Id");
+
+ b.HasIndex("TimelineId");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("timeline_members");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
+
+ b.Property<long?>("AuthorId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("author");
+
+ b.Property<string>("Content")
+ .HasColumnType("TEXT")
+ .HasColumnName("content");
+
+ b.Property<string>("ContentType")
+ .IsRequired()
+ .HasColumnType("TEXT")
+ .HasColumnName("content_type");
+
+ b.Property<string>("ExtraContent")
+ .HasColumnType("TEXT")
+ .HasColumnName("extra_content");
+
+ b.Property<DateTime>("LastUpdated")
+ .HasColumnType("TEXT")
+ .HasColumnName("last_updated");
+
+ b.Property<long>("LocalId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("local_id");
+
+ b.Property<DateTime>("Time")
+ .HasColumnType("TEXT")
+ .HasColumnName("time");
+
+ b.Property<long>("TimelineId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("timeline");
+
+ b.HasKey("Id");
+
+ b.HasIndex("AuthorId");
+
+ b.HasIndex("TimelineId");
+
+ b.ToTable("timeline_posts");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
+
+ b.Property<string>("DataTag")
+ .HasColumnType("TEXT")
+ .HasColumnName("data_tag");
+
+ b.Property<DateTime>("LastModified")
+ .HasColumnType("TEXT")
+ .HasColumnName("last_modified");
+
+ b.Property<string>("Type")
+ .HasColumnType("TEXT")
+ .HasColumnName("type");
+
+ b.Property<long>("UserId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("user");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId")
+ .IsUnique();
+
+ b.ToTable("user_avatars");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
+
+ b.Property<DateTime>("CreateTime")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT")
+ .HasColumnName("create_time")
+ .HasDefaultValueSql("datetime('now', 'utc')");
+
+ b.Property<DateTime>("LastModified")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT")
+ .HasColumnName("last_modified")
+ .HasDefaultValueSql("datetime('now', 'utc')");
+
+ b.Property<string>("Nickname")
+ .HasColumnType("TEXT")
+ .HasColumnName("nickname");
+
+ b.Property<string>("Password")
+ .IsRequired()
+ .HasColumnType("TEXT")
+ .HasColumnName("password");
+
+ b.Property<string>("Roles")
+ .IsRequired()
+ .HasColumnType("TEXT")
+ .HasColumnName("roles");
+
+ b.Property<string>("UniqueId")
+ .IsRequired()
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT")
+ .HasColumnName("unique_id")
+ .HasDefaultValueSql("lower(hex(randomblob(16)))");
+
+ b.Property<string>("Username")
+ .IsRequired()
+ .HasColumnType("TEXT")
+ .HasColumnName("username");
+
+ b.Property<DateTime>("UsernameChangeTime")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT")
+ .HasColumnName("username_change_time")
+ .HasDefaultValueSql("datetime('now', 'utc')");
+
+ b.Property<long>("Version")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasDefaultValue(0L)
+ .HasColumnName("version");
+
+ b.HasKey("Id");
+
+ b.HasIndex("Username")
+ .IsUnique();
+
+ b.ToTable("users");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserPermissionEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
+
+ b.Property<string>("Permission")
+ .IsRequired()
+ .HasColumnType("TEXT")
+ .HasColumnName("permission");
+
+ b.Property<long>("UserId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("user_id");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("user_permission");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.UserEntity", "Owner")
+ .WithMany("Timelines")
+ .HasForeignKey("OwnerId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Owner");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+ .WithMany("Members")
+ .HasForeignKey("TimelineId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("Timeline.Entities.UserEntity", "User")
+ .WithMany("TimelinesJoined")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Timeline");
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.UserEntity", "Author")
+ .WithMany("TimelinePosts")
+ .HasForeignKey("AuthorId");
+
+ b.HasOne("Timeline.Entities.TimelineEntity", "Timeline")
+ .WithMany("Posts")
+ .HasForeignKey("TimelineId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Author");
+
+ b.Navigation("Timeline");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.UserEntity", "User")
+ .WithOne("Avatar")
+ .HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserPermissionEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.UserEntity", "User")
+ .WithMany("Permissions")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+ {
+ b.Navigation("Members");
+
+ b.Navigation("Posts");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+ {
+ b.Navigation("Avatar");
+
+ b.Navigation("Permissions");
+
+ b.Navigation("TimelinePosts");
+
+ b.Navigation("Timelines");
+
+ b.Navigation("TimelinesJoined");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/BackEnd/Timeline/Migrations/20201112084015_AddUserPermission.cs b/BackEnd/Timeline/Migrations/20201112084015_AddUserPermission.cs
new file mode 100644
index 00000000..b2288374
--- /dev/null
+++ b/BackEnd/Timeline/Migrations/20201112084015_AddUserPermission.cs
@@ -0,0 +1,41 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace Timeline.Migrations
+{
+ public partial class AddUserPermission : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "user_permission",
+ columns: table => new
+ {
+ id = table.Column<long>(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ user_id = table.Column<long>(type: "INTEGER", nullable: false),
+ permission = table.Column<string>(type: "TEXT", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_user_permission", x => x.id);
+ table.ForeignKey(
+ name: "FK_user_permission_users_user_id",
+ column: x => x.user_id,
+ principalTable: "users",
+ principalColumn: "id",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_user_permission_user_id",
+ table: "user_permission",
+ column: "user_id");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "user_permission");
+ }
+ }
+}
diff --git a/BackEnd/Timeline/Migrations/DatabaseContextModelSnapshot.cs b/BackEnd/Timeline/Migrations/DatabaseContextModelSnapshot.cs
index 65ae6c9a..95bb0ff5 100644
--- a/BackEnd/Timeline/Migrations/DatabaseContextModelSnapshot.cs
+++ b/BackEnd/Timeline/Migrations/DatabaseContextModelSnapshot.cs
@@ -14,28 +14,28 @@ namespace Timeline.Migrations
{
#pragma warning disable 612, 618
modelBuilder
- .HasAnnotation("ProductVersion", "3.1.7");
+ .HasAnnotation("ProductVersion", "5.0.0");
modelBuilder.Entity("Timeline.Entities.DataEntity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
- .HasColumnName("id")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
b.Property<byte[]>("Data")
.IsRequired()
- .HasColumnName("data")
- .HasColumnType("BLOB");
+ .HasColumnType("BLOB")
+ .HasColumnName("data");
b.Property<int>("Ref")
- .HasColumnName("ref")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("ref");
b.Property<string>("Tag")
.IsRequired()
- .HasColumnName("tag")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("tag");
b.HasKey("Id");
@@ -49,13 +49,13 @@ namespace Timeline.Migrations
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
- .HasColumnName("id")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
b.Property<byte[]>("Key")
.IsRequired()
- .HasColumnName("key")
- .HasColumnType("BLOB");
+ .HasColumnType("BLOB")
+ .HasColumnName("key");
b.HasKey("Id");
@@ -66,51 +66,51 @@ namespace Timeline.Migrations
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
- .HasColumnName("id")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
b.Property<DateTime>("CreateTime")
- .HasColumnName("create_time")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("create_time");
b.Property<long>("CurrentPostLocalId")
- .HasColumnName("current_post_local_id")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("current_post_local_id");
b.Property<string>("Description")
- .HasColumnName("description")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("description");
b.Property<DateTime>("LastModified")
- .HasColumnName("last_modified")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("last_modified");
b.Property<string>("Name")
- .HasColumnName("name")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("name");
b.Property<DateTime>("NameLastModified")
- .HasColumnName("name_last_modified")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("name_last_modified");
b.Property<long>("OwnerId")
- .HasColumnName("owner")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("owner");
b.Property<string>("Title")
- .HasColumnName("title")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("title");
b.Property<string>("UniqueId")
.IsRequired()
.ValueGeneratedOnAdd()
- .HasColumnName("unique_id")
.HasColumnType("TEXT")
+ .HasColumnName("unique_id")
.HasDefaultValueSql("lower(hex(randomblob(16)))");
b.Property<int>("Visibility")
- .HasColumnName("visibility")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("visibility");
b.HasKey("Id");
@@ -123,16 +123,16 @@ namespace Timeline.Migrations
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
- .HasColumnName("id")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
b.Property<long>("TimelineId")
- .HasColumnName("timeline")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("timeline");
b.Property<long>("UserId")
- .HasColumnName("user")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("user");
b.HasKey("Id");
@@ -147,41 +147,41 @@ namespace Timeline.Migrations
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
- .HasColumnName("id")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
b.Property<long?>("AuthorId")
- .HasColumnName("author")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("author");
b.Property<string>("Content")
- .HasColumnName("content")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("content");
b.Property<string>("ContentType")
.IsRequired()
- .HasColumnName("content_type")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("content_type");
b.Property<string>("ExtraContent")
- .HasColumnName("extra_content")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("extra_content");
b.Property<DateTime>("LastUpdated")
- .HasColumnName("last_updated")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("last_updated");
b.Property<long>("LocalId")
- .HasColumnName("local_id")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("local_id");
b.Property<DateTime>("Time")
- .HasColumnName("time")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("time");
b.Property<long>("TimelineId")
- .HasColumnName("timeline")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("timeline");
b.HasKey("Id");
@@ -196,24 +196,24 @@ namespace Timeline.Migrations
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
- .HasColumnName("id")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
b.Property<string>("DataTag")
- .HasColumnName("data_tag")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("data_tag");
b.Property<DateTime>("LastModified")
- .HasColumnName("last_modified")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("last_modified");
b.Property<string>("Type")
- .HasColumnName("type")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("type");
b.Property<long>("UserId")
- .HasColumnName("user")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("user");
b.HasKey("Id");
@@ -227,58 +227,58 @@ namespace Timeline.Migrations
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
- .HasColumnName("id")
- .HasColumnType("INTEGER");
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
b.Property<DateTime>("CreateTime")
.ValueGeneratedOnAdd()
- .HasColumnName("create_time")
.HasColumnType("TEXT")
+ .HasColumnName("create_time")
.HasDefaultValueSql("datetime('now', 'utc')");
b.Property<DateTime>("LastModified")
.ValueGeneratedOnAdd()
- .HasColumnName("last_modified")
.HasColumnType("TEXT")
+ .HasColumnName("last_modified")
.HasDefaultValueSql("datetime('now', 'utc')");
b.Property<string>("Nickname")
- .HasColumnName("nickname")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("nickname");
b.Property<string>("Password")
.IsRequired()
- .HasColumnName("password")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("password");
b.Property<string>("Roles")
.IsRequired()
- .HasColumnName("roles")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("roles");
b.Property<string>("UniqueId")
.IsRequired()
.ValueGeneratedOnAdd()
- .HasColumnName("unique_id")
.HasColumnType("TEXT")
+ .HasColumnName("unique_id")
.HasDefaultValueSql("lower(hex(randomblob(16)))");
b.Property<string>("Username")
.IsRequired()
- .HasColumnName("username")
- .HasColumnType("TEXT");
+ .HasColumnType("TEXT")
+ .HasColumnName("username");
b.Property<DateTime>("UsernameChangeTime")
.ValueGeneratedOnAdd()
- .HasColumnName("username_change_time")
.HasColumnType("TEXT")
+ .HasColumnName("username_change_time")
.HasDefaultValueSql("datetime('now', 'utc')");
b.Property<long>("Version")
.ValueGeneratedOnAdd()
- .HasColumnName("version")
.HasColumnType("INTEGER")
- .HasDefaultValue(0L);
+ .HasDefaultValue(0L)
+ .HasColumnName("version");
b.HasKey("Id");
@@ -288,6 +288,29 @@ namespace Timeline.Migrations
b.ToTable("users");
});
+ modelBuilder.Entity("Timeline.Entities.UserPermissionEntity", b =>
+ {
+ b.Property<long>("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER")
+ .HasColumnName("id");
+
+ b.Property<string>("Permission")
+ .IsRequired()
+ .HasColumnType("TEXT")
+ .HasColumnName("permission");
+
+ b.Property<long>("UserId")
+ .HasColumnType("INTEGER")
+ .HasColumnName("user_id");
+
+ b.HasKey("Id");
+
+ b.HasIndex("UserId");
+
+ b.ToTable("user_permission");
+ });
+
modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
{
b.HasOne("Timeline.Entities.UserEntity", "Owner")
@@ -295,6 +318,8 @@ namespace Timeline.Migrations
.HasForeignKey("OwnerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
+
+ b.Navigation("Owner");
});
modelBuilder.Entity("Timeline.Entities.TimelineMemberEntity", b =>
@@ -310,6 +335,10 @@ namespace Timeline.Migrations
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
+
+ b.Navigation("Timeline");
+
+ b.Navigation("User");
});
modelBuilder.Entity("Timeline.Entities.TimelinePostEntity", b =>
@@ -323,6 +352,10 @@ namespace Timeline.Migrations
.HasForeignKey("TimelineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
+
+ b.Navigation("Author");
+
+ b.Navigation("Timeline");
});
modelBuilder.Entity("Timeline.Entities.UserAvatarEntity", b =>
@@ -332,6 +365,39 @@ namespace Timeline.Migrations
.HasForeignKey("Timeline.Entities.UserAvatarEntity", "UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserPermissionEntity", b =>
+ {
+ b.HasOne("Timeline.Entities.UserEntity", "User")
+ .WithMany("Permissions")
+ .HasForeignKey("UserId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("User");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.TimelineEntity", b =>
+ {
+ b.Navigation("Members");
+
+ b.Navigation("Posts");
+ });
+
+ modelBuilder.Entity("Timeline.Entities.UserEntity", b =>
+ {
+ b.Navigation("Avatar");
+
+ b.Navigation("Permissions");
+
+ b.Navigation("TimelinePosts");
+
+ b.Navigation("Timelines");
+
+ b.Navigation("TimelinesJoined");
});
#pragma warning restore 612, 618
}