ConGroups are gone. Long live admin flags in content.

This commit is contained in:
Pieter-Jan Briers
2020-10-30 16:06:48 +01:00
parent f04818437d
commit ad58a056d7
62 changed files with 2673 additions and 289 deletions

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
@@ -26,6 +27,8 @@ namespace Content.Server.Database
public DbSet<Preference> Preference { get; set; } = null!;
public DbSet<Profile> Profile { get; set; } = null!;
public DbSet<AssignedUserId> AssignedUserId { get; set; } = null!;
public DbSet<Admin> Admin { get; set; } = null!;
public DbSet<AdminRank> AdminRank { get; set; } = null!;
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
@@ -49,6 +52,11 @@ namespace Content.Server.Database
modelBuilder.Entity<AssignedUserId>()
.HasIndex(p => p.UserId)
.IsUnique();
modelBuilder.Entity<Admin>()
.HasOne(p => p.AdminRank)
.WithMany(p => p!.Admins)
.OnDelete(DeleteBehavior.SetNull);
}
}
@@ -135,4 +143,46 @@ namespace Content.Server.Database
[Column("user_id")] public Guid UserId { get; set; }
}
[Table("admin")]
public class Admin
{
[Column("user_id"), Key] public Guid UserId { get; set; }
[Column("title")] public string? Title { get; set; }
[Column("admin_rank_id")] public int? AdminRankId { get; set; }
public AdminRank? AdminRank { get; set; }
public List<AdminFlag> Flags { get; set; } = default!;
}
[Table("admin_flag")]
public class AdminFlag
{
[Column("admin_flag_id")] public int Id { get; set; }
[Column("flag")] public string Flag { get; set; } = default!;
[Column("negative")] public bool Negative { get; set; }
[Column("admin_id")] public Guid AdminId { get; set; }
public Admin Admin { get; set; } = default!;
}
[Table("admin_rank")]
public class AdminRank
{
[Column("admin_rank_id")] public int Id { get; set; }
[Column("name")] public string Name { get; set; } = default!;
public List<Admin> Admins { get; set; } = default!;
public List<AdminRankFlag> Flags { get; set; } = default!;
}
[Table("admin_rank_flag")]
public class AdminRankFlag
{
[Column("admin_rank_flag_id")] public int Id { get; set; }
[Column("flag")] public string Flag { get; set; } = default!;
[Column("admin_rank_id")] public int AdminRankId { get; set; }
public AdminRank Rank { get; set; } = default!;
}
}