import uuid from django.conf import settings from django.contrib.auth.models import User from django.db import models from pycs_api.models import base from pycs_api.models.label_provider import LabelProvider from pycs_api.models.model import Model def new_root_folder(): return f"{settings.PROJECTS_DIR}/{uuid.uuid4()}" class Project(base.BaseModel): user = models.ForeignKey( User, on_delete=models.CASCADE, related_name="projects", related_query_name="project", ) description = models.TextField() created = models.DateTimeField(auto_now_add=True) model = models.ForeignKey( Model, null=True, blank=True, on_delete=models.SET_NULL ) label_provider = models.ForeignKey( LabelProvider, null=True, blank=True, on_delete=models.SET_NULL ) root_folder = models.CharField(max_length=255, default=new_root_folder, unique=True) data_folder = models.CharField(max_length=255) external_data = models.BooleanField(default=False) serializer_fields = base.BaseModel.serializer_fields + [ "description", "created", "model_id", "label_provider_id", "data_folder", "root_folder", ]