Data model: Use correct link between plan and offering

This commit is contained in:
Tobias Kunze 2025-03-16 08:37:03 +01:00
parent abf18249bc
commit d9469938ec

View file

@ -86,30 +86,20 @@ class Plan(models.Model):
# TODO schema # TODO schema
pricing = models.JSONField(verbose_name=_("Pricing")) pricing = models.JSONField(verbose_name=_("Pricing"))
term = models.DurationField(verbose_name=_("Term")) term = models.DurationField(verbose_name=_("Term"))
service_offering = models.ForeignKey(
to="ServiceOffering",
on_delete=models.PROTECT,
related_name="plans",
verbose_name=_("Service offering"),
)
def __str__(self): def __str__(self):
return self.name return self.name
class ServiceOfferingPlan(models.Model):
offering = models.ForeignKey(
to="ServiceOffering",
on_delete=models.CASCADE,
related_name="offering_plans",
verbose_name=_("Offering"),
)
plan = models.ForeignKey(
to="Plan",
on_delete=models.CASCADE,
related_name="offering_plans",
verbose_name=_("Plan"),
)
pricing = models.JSONField(verbose_name=_("Pricing"))
class ServiceOffering(models.Model): class ServiceOffering(models.Model):
description = models.TextField(blank=True, verbose_name=_("Description")) description = models.TextField(blank=True, verbose_name=_("Description"))
services = models.ManyToManyField( service = models.ForeignKey(
to="Service", to="Service",
related_name="offerings", related_name="offerings",
verbose_name=_("Services"), verbose_name=_("Services"),
@ -119,15 +109,9 @@ class ServiceOffering(models.Model):
related_name="offerings", related_name="offerings",
verbose_name=_("Providers"), verbose_name=_("Providers"),
) )
control_plane = models.ForeignKey( control_plane = models.ManyToManyField(
to="ControlPlane", to="ControlPlane",
on_delete=models.PROTECT, on_delete=models.PROTECT,
related_name="offerings", related_name="offerings",
verbose_name=_("Control plane"), verbose_name=_("Control plane"),
) )
plans = models.ManyToManyField(
to="Plan",
through="ServiceOfferingPlan",
related_name="offerings",
verbose_name=_("Plans"),
)