38279-vm/core/models.py
Flatlogic Bot ad4bdec188 Viblo 2.0
2026-02-08 03:52:45 +00:00

44 lines
1.5 KiB
Python

from django.db import models
from django.utils import timezone
class Project(models.Model):
STATUS_CHOICES = [
('draft', 'Draft'),
('scripting', 'Scripting'),
('processing', 'Processing'),
('completed', 'Completed'),
]
title = models.CharField(max_length=255)
description = models.TextField(blank=True)
created_at = models.DateTimeField(default=timezone.now)
updated_at = models.DateTimeField(auto_now=True)
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='draft')
def __str__(self):
return self.title
class Script(models.Model):
project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name='scripts')
prompt = models.TextField()
content = models.TextField() # JSON or structured text from AI
created_at = models.DateTimeField(default=timezone.now)
def __str__(self):
return f"Script for {self.project.title} ({self.created_at.strftime('%Y-%m-%d')})"
class MediaAsset(models.Model):
ASSET_TYPE_CHOICES = [
('video', 'Video'),
('audio', 'Audio'),
('image', 'Image'),
]
project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name='assets')
file = models.FileField(upload_to='assets/%Y/%m/%d/')
asset_type = models.CharField(max_length=10, choices=ASSET_TYPE_CHOICES)
original_name = models.CharField(max_length=255)
created_at = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.original_name