from django.db import models from django.conf import settings from labs.utils.database_fields import EncryptedTextField class UserServerlessCluster(models.Model): class Status(models.TextChoices): CREATING = "creating" ACTIVE = "active" user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) lab_instance = models.ForeignKey( "labs.LabInstance", on_delete=models.CASCADE, blank=True, null=True, ) oauth_grant = models.ForeignKey( "labs.LabsOAuthTiDBCloudGrant", on_delete=models.CASCADE, blank=True, null=True, ) tidbcloud_organization_id = models.CharField(max_length=32, blank=True, null=True) tidbcloud_project_id = models.CharField(max_length=32, blank=True, null=True) tidbcloud_cluster_id = models.CharField(max_length=255) tidbcloud_cluster_name = models.CharField(max_length=255) host = models.CharField(max_length=255, blank=True, null=True) port = models.IntegerField(blank=True, null=True) username = EncryptedTextField(blank=True, null=True) password = EncryptedTextField(blank=True, null=True) database_name = models.CharField(max_length=255, blank=True, null=True) status = models.CharField( max_length=255, choices=Status.choices, default=Status.CREATING ) sql_user_deleted_at = models.DateTimeField(blank=True, null=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: db_table = "user_serverless_clusters"