Coverage for backend/core/auxiliary/models/Solution.py: 100%
11 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
1from django.contrib.postgres.fields import ArrayField
2from django.db import models
4from core.managers import AccessControlManager
6class Solution(models.Model):
7 """Persist property results produced by multi-solves.
9 Each instance captures values for a specific `solve_index` and property
10 within a scenario. Steady-state runs typically contribute a single float,
11 while dynamic solves (standalone or nested inside an MSS iteration) store a
12 sequence of time-step values. Records are populated following any MSS solve
13 and later surfaced through serializers, viewsets, and summary tooling.
14 """
15 flowsheet = models.ForeignKey("Flowsheet", on_delete=models.CASCADE, related_name="solutions")
16 property = models.ForeignKey("PropertyValue", on_delete=models.CASCADE, related_name="solutions", null=True)
17 scenario = models.ForeignKey("Scenario", on_delete=models.CASCADE, related_name="solutions")
18 solve_index = models.IntegerField(null=True, default=None)
19 values = ArrayField(
20 models.FloatField()
21 )
23 created_at = models.DateTimeField(auto_now_add=True)
25 objects = AccessControlManager()