using DigitalData.UserManager.Domain.Entities;
using Microsoft.EntityFrameworkCore;

namespace DigitalData.UserManager.Infrastructure
{
    public static class DbContextExtensions
    {
        public static ModelBuilder ConfigureUserManager(this ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<User>()
                .ToTable(tb => tb.HasTrigger("TBDD_USER_AFT_DEL"))
                .ToTable(tb => tb.HasTrigger("TBDD_USER_AFT_INS"))
                .ToTable(tb => tb.HasTrigger("TBDD_USER_AFT_UPD"))
                .ToTable(tb => tb.HasTrigger("TBDD_USER_AFT_UPD_LOG"));

            modelBuilder.Entity<GroupOfUser>()
                .ToTable(tb => tb.HasTrigger("TBDD_GROUPS_USER_AFT_DEL"))
                .ToTable(tb => tb.HasTrigger("TBDD_GROUPS_USER_AFT_UPD"));

            modelBuilder.Entity<Group>()
                .ToTable(tb => tb.HasTrigger("TBDD_GROUPS_AFT_UPD"))
                .HasKey(group => group.Id);

            modelBuilder.Entity<Module>()
                .ToTable(tb => tb.HasTrigger("TBDD_MODULE_AFT_UPD"));

            modelBuilder.Entity<ModuleOfUser>();

            modelBuilder.Entity<UserRep>()
                .ToTable(tb => tb.HasTrigger("TBDD_USER_REPRESENTATION_AFT_UPD"));

            return modelBuilder;
        }
    }
}