| 1 | from django.db import models
|
|---|
| 2 |
|
|---|
| 3 | from forecast_app.models.forecast_model import ForecastModel
|
|---|
| 4 | from forecast_app.models.project import TimeZero
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 | class Forecast(models.Model):
|
|---|
| 8 | class Meta:
|
|---|
| 9 | constraints = [
|
|---|
| 10 | models.UniqueConstraint(fields=['forecast_model', 'time_zero', 'issued_at'], name='unique_version'),
|
|---|
| 11 | ]
|
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 | forecast_model = models.ForeignKey(ForecastModel, related_name='forecasts', on_delete=models.CASCADE)
|
|---|
| 15 |
|
|---|
| 16 | source = models.TextField(help_text="file name of the source of this forecast's prediction data")
|
|---|
| 17 |
|
|---|
| 18 | time_zero = models.ForeignKey(TimeZero, on_delete=models.CASCADE,
|
|---|
| 19 | help_text="TimeZero that this forecast is in relation to.")
|
|---|
| 20 |
|
|---|
| 21 | created_at = models.DateTimeField(auto_now_add=True)
|
|---|
| 22 |
|
|---|
| 23 | issued_at = models.DateTimeField(db_index=True, null=False)
|
|---|
| 24 |
|
|---|
| 25 | notes = models.TextField(null=True, blank=True,
|
|---|
| 26 | help_text="Text describing anything slightly different about a given forecast, e.g., a "
|
|---|
| 27 | "changed set of assumptions or a comment about when the forecast was created. "
|
|---|
| 28 | "Notes should be brief, typically less than 50 words.")
|
|---|