using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using RSecurityBackend.Models.Audit.Db;
using RSecurityBackend.Models.Auth.Db;
using RSecurityBackend.Models.Image;
using System;
namespace RSecurityBackend.DbContext
{
///
/// Security EF DbContext
///
public class RSecurityDbContext : IdentityDbContext
where TUser : IdentityUser
where TRole : IdentityRole
where TKey : IEquatable
{
///
/// parameterless constructor
///
public RSecurityDbContext()
: base()
{
}
///
/// delete db
///
public void DeleteDb()
{
Database.EnsureDeleted();
}
///
///
///
///
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder); //https://stackoverflow.com/a/34013431/66657
builder.Entity()
.HasIndex(u => u.Secret)
.IsUnique();
}
#region Auth
///
/// Permissions
///
public DbSet Permissions { get; set; }
///
/// User Sessions
///
public DbSet Sessions { get; set; }
///
/// Signup Queue Items
///
public DbSet VerifyQueueItems { get; set; }
///
/// General Images
///
public DbSet GeneralImages { get; set; }
///
/// Captcha Images
///
public DbSet CaptchaImages { get; set; }
#endregion
#region Audit
///
/// Audit Logs Events
///
public DbSet AuditLogs { get; set; }
#endregion
}
}