31 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | // 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; } | ||
|  |     // Podríamos añadir más tablas como CategoriaElectoral o ProyeccionBanca aquí | ||
|  | 
 | ||
|  |     protected override void OnModelCreating(ModelBuilder modelBuilder) | ||
|  |     { | ||
|  |         base.OnModelCreating(modelBuilder); // Es buena práctica llamar a la base | ||
|  | 
 | ||
|  |         // Configuraciones adicionales del modelo (índices, etc.) pueden ir aquí. | ||
|  |         // Por ejemplo, para optimizar las búsquedas. | ||
|  |         modelBuilder.Entity<ResultadoVoto>() | ||
|  |             .HasIndex(r => new { r.AmbitoGeograficoId, r.AgrupacionPoliticaId }) | ||
|  |             .IsUnique(); | ||
|  | 
 | ||
|  |         modelBuilder.Entity<EstadoRecuento>(entity => | ||
|  |         { | ||
|  |             entity.Property(e => e.MesasTotalizadasPorcentaje).HasPrecision(5, 2); | ||
|  |             entity.Property(e => e.ParticipacionPorcentaje).HasPrecision(5, 2); | ||
|  |         }); | ||
|  |     } | ||
|  | } |