31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
from django.db import models
|
|
|
|
from apps.core.models import TimeStampedModel, UUIDModel
|
|
|
|
|
|
class Camera(UUIDModel, TimeStampedModel):
|
|
name = models.CharField(max_length=200)
|
|
facility = models.CharField(max_length=200, blank=True)
|
|
processing_line = models.CharField(max_length=200, blank=True)
|
|
stream_url = models.URLField()
|
|
# Never expose credentials to the frontend; keep auth config server-side.
|
|
auth_config = models.JSONField(default=dict, blank=True)
|
|
active = models.BooleanField(default=True)
|
|
|
|
def __str__(self) -> str:
|
|
return self.name
|
|
|
|
|
|
class LiveStream(UUIDModel, TimeStampedModel):
|
|
camera = models.ForeignKey(Camera, on_delete=models.CASCADE, related_name="streams")
|
|
name = models.CharField(max_length=200, blank=True)
|
|
active = models.BooleanField(default=True)
|
|
|
|
def __str__(self) -> str:
|
|
return self.name or self.camera.name
|
|
|
|
|
|
class WorkflowStepCamera(UUIDModel):
|
|
step = models.ForeignKey("workflows.WorkflowStep", on_delete=models.CASCADE, related_name="cameras")
|
|
camera = models.ForeignKey(Camera, on_delete=models.CASCADE, related_name="workflow_steps")
|