2025-08-14 13:12:16 -03:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								// src/Elecciones.Database/EleccionesDbContext.cs
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								using Elecciones.Database.Entities;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								using Microsoft.EntityFrameworkCore;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								namespace Elecciones.Database;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								public class EleccionesDbContext(DbContextOptions<EleccionesDbContext> options) : DbContext(options)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								{
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    public DbSet<AgrupacionPolitica> AgrupacionesPoliticas { get; set; }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    public DbSet<AmbitoGeografico> AmbitosGeograficos { get; set; }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    public DbSet<ResultadoVoto> ResultadosVotos { get; set; }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    public DbSet<EstadoRecuento> EstadosRecuentos { get; set; }
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-15 17:31:51 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    public DbSet<ProyeccionBanca> ProyeccionesBancas { get; set; }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    public DbSet<Telegrama> Telegramas { get; set; }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    public DbSet<ResumenVoto> ResumenesVotos { get; set; }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    public DbSet<EstadoRecuentoGeneral> EstadosRecuentosGenerales { get; set; }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    public DbSet<CategoriaElectoral> CategoriasElectorales { get; set; }
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-14 13:12:16 -03:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    protected override void OnModelCreating(ModelBuilder modelBuilder)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    {
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-17 20:08:38 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        base.OnModelCreating(modelBuilder);
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-14 13:12:16 -03:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        modelBuilder.Entity<ResultadoVoto>()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            .HasIndex(r => new { r.AmbitoGeograficoId, r.AgrupacionPoliticaId })
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            .IsUnique();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-17 20:08:38 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        // Precisión para los campos de porcentaje en EstadoRecuento
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-14 13:12:16 -03:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        modelBuilder.Entity<EstadoRecuento>(entity =>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            entity.Property(e => e.MesasTotalizadasPorcentaje).HasPrecision(5, 2);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            entity.Property(e => e.ParticipacionPorcentaje).HasPrecision(5, 2);
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-17 20:08:38 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								            entity.Property(e => e.VotosNulosPorcentaje).HasPrecision(18, 4);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            entity.Property(e => e.VotosEnBlancoPorcentaje).HasPrecision(18, 4);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            entity.Property(e => e.VotosRecurridosPorcentaje).HasPrecision(18, 4);
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-14 13:12:16 -03:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        });
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-17 20:08:38 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        // Precisión para el campo de porcentaje en ResultadoVoto
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        modelBuilder.Entity<ResultadoVoto>()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								            .Property(e => e.PorcentajeVotos).HasPrecision(18, 4);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-15 17:31:51 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        modelBuilder.Entity<ResumenVoto>()
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-17 20:08:38 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								            .Property(e => e.VotosPorcentaje).HasPrecision(5, 2);
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-15 17:31:51 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        modelBuilder.Entity<EstadoRecuentoGeneral>(entity =>
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-17 20:08:38 -03:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    {
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        // Le decimos a EF que la combinación única es (AmbitoGeograficoId, CategoriaId)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        entity.HasKey(e => new { e.AmbitoGeograficoId, e.CategoriaId });
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        // Mantener la configuración de precisión
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        entity.Property(e => e.MesasTotalizadasPorcentaje).HasPrecision(5, 2);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        entity.Property(e => e.ParticipacionPorcentaje).HasPrecision(5, 2);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    });
							 | 
						
					
						
							
								
									
										
										
										
											2025-08-14 13:12:16 -03:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    }
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 |