using Demo.Data.RemoteData.RemoteDataBase.DAO;
using Microsoft.EntityFrameworkCore;

namespace Demo.Data.RemoteData.RemoteDataBase
{
    public class RemoteDatabaseContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseNpgsql("Host=45.67.56.214;Port=5421;Username=user15;Database=user15;Password=3XkvwMOb");
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            // Настройка ключа и автоматической генерации для GroupDao
            modelBuilder.Entity<GroupDao>().HasKey(group => group.Id);
            modelBuilder.Entity<GroupDao>().Property(group => group.Id).ValueGeneratedOnAdd();

            // Настройка ключа и автоматической генерации для UserDao
            modelBuilder.Entity<UserDao>().HasKey(user => user.Guid);
            modelBuilder.Entity<UserDao>().Property(user => user.Guid).ValueGeneratedOnAdd();

            // Настройка составного ключа для PresenceDao
            modelBuilder.Entity<PresenceDao>().HasKey(presense => new
            {
                presense.Id
                
            });

            // Настройка связи UserDao с PresenceDao
            modelBuilder.Entity<PresenceDao>()
               .Property(presence => presence.Id)
               .ValueGeneratedOnAdd();
                
        }

        public DbSet<GroupDao> Groups { get; set; }
        public DbSet<UserDao> Users { get; set; }
        public DbSet<PresenceDao> PresenceDaos { get; set; }
    }
}
