Ekaropolus 4e4f6defde
Some checks reported errors
continuous-integration/drone/push Build was killed
Zones Dashboard
2025-05-18 22:01:51 -06:00

44 lines
1.7 KiB
Python

from django.db import models
class Country(models.Model):
code = models.CharField(max_length=3, unique=True)
name = models.CharField(max_length=100)
class Meta:
verbose_name = 'País'
verbose_name_plural = 'Países'
def __str__(self):
return self.name
class GeoScenario(models.Model):
name = models.CharField(max_length=255, help_text='Nombre del escenario geográfico base')
upload_date = models.DateTimeField(auto_now_add=True)
country = models.ForeignKey(Country, on_delete=models.SET_NULL, null=True)
geographic_field_name = models.CharField(max_length=100, help_text='Columna con el identificador geográfico (ej. N_URBANO, PUEBLO)')
csv_file = models.FileField(upload_to='geo_scenarios/')
class Meta:
verbose_name = 'Escenario Geográfico'
verbose_name_plural = 'Escenarios Geográficos'
def __str__(self):
return f"{self.name} ({self.country})"
class OptScenario(models.Model):
geo_scenario = models.ForeignKey(GeoScenario, on_delete=models.CASCADE, related_name='opt_scenarios')
name = models.CharField(max_length=255, help_text='Nombre del escenario de optimización')
type_of_waste = models.CharField(max_length=100, help_text='Tipo de residuo (ej. orgánico, reciclable)')
strategy = models.CharField(max_length=100, help_text='Método de optimización utilizado')
upload_date = models.DateTimeField(auto_now_add=True)
optimized_csv = models.FileField(upload_to='opt_scenarios/')
class Meta:
verbose_name = 'Escenario de Optimización'
verbose_name_plural = 'Escenarios de Optimización'
def __str__(self):
return f"{self.name} ({self.type_of_waste})"