12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using MafiaTelegramBot.DataBase.Entity;
- using MafiaTelegramBot.Resources;
- using Microsoft.EntityFrameworkCore;
- namespace MafiaTelegramBot.DataBase
- {
- public class MafiaDataBase : DbContext
- {
- private MafiaDataBase()
- {
- Database.EnsureCreated();
- }
- private static MafiaDataBase _instance;
- public static MafiaDataBase GetInstance()
- {
- if(_instance!=null) return _instance;
- _instance = new MafiaDataBase();
-
- return _instance;
- }
-
- public DbSet<UserEntity> Users { get; set; }
- public DbSet<StatisticsEntity> Statistics { get; set; }
- public DbSet<OpenedRolesEntity> OpenedRoles { get; set; }
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- optionsBuilder.UseMySQL(
- $"server={AppSettings.IpAddress};" +
- $"port={AppSettings.Port};" +
- $"database={AppSettings.Database};" +
- $"uid={AppSettings.Uid};" +
- $"pwd={AppSettings.Pwd}"
- );
- }
-
- protected override void OnModelCreating(ModelBuilder modelBuilder)
- {
- modelBuilder.Entity<StatisticsEntity>()
- .HasKey(s => new {s.UserId, s.Role});
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Bodyguard).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Dame).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Detective).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Elder).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Fool).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Hooker).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Journalist).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Lawyer).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Necromancer).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Parasite).HasDefaultValue(0);
- modelBuilder.Entity<OpenedRolesEntity>()
- .Property(r => r.Werewolf).HasDefaultValue(0);
- }
- }
- }
|