diff --git a/src/servala/core/models/service.py b/src/servala/core/models/service.py index 4cd719b..5654b9e 100644 --- a/src/servala/core/models/service.py +++ b/src/servala/core/models/service.py @@ -52,11 +52,18 @@ class ControlPlane(models.Model): # TODO: schema api_credentials = models.JSONField(verbose_name=_("API credentials")) + cloud_provider = models.ForeignKey( + to="CloudProvider", + on_delete=models.PROTECT, + related_name="control_planes", + verbose_name=_("Cloud provider"), + ) + def __str__(self): return self.name -class ServiceProvider(models.Model): +class CloudProvider(models.Model): name = models.CharField(max_length=100, verbose_name=_("Name")) description = models.TextField(blank=True, verbose_name=_("Description")) logo = models.ImageField( @@ -114,8 +121,8 @@ class ServiceOffering(models.Model): related_name="offerings", verbose_name=_("Services"), ) - providers = models.ManyToManyField( - to="ServiceProvider", + provider = models.ForeignKey( + to="CloudProvider", related_name="offerings", verbose_name=_("Providers"), )