from django.db import models # Create your models here. class TestCinema(models.Model): """ 用于存储测试影院基本信息、数据库配置信息 user_config用于模拟用户设置情况 is_active设置为False时不会自动生成影院的排片,需要手动生成 """ id = models.AutoField(primary_key=True) name = models.CharField(max_length=50) zz_code = models.CharField(max_length=50) db_config = models.TextField() user_config = models.TextField() is_active = models.BooleanField(default=True) def __str__(self): return self.name class Meta: verbose_name = '测试影院' verbose_name_plural = '测试影院' db_table = 'ai_show_cinema' class PromptTemplate(models.Model): """ 分板块的提示词模板,用于动态调整提示词的内容和结构。 ShowPromptVersion为当前提示词版本 """ id = models.AutoField(primary_key=True) prompt_type = models.CharField(max_length=50) prompt_key = models.CharField(max_length=50) prompt_val = models.TextField() del_flag = models.BooleanField(default=False) def __str__(self): return self.prompt_key class Meta: verbose_name = '提示词' verbose_name_plural = '提示词' db_table = 'ai_prompt_template' class AiShow(models.Model): """ 用于存储ai生成的结果已经影院真实排片 temp_date: 模板数据日期 target: 目标日期已排影片数据,csv格式 show: 目标日期ai生成的排片数据,csv格式 sales: ai排片预期收入 prompt """ id = models.AutoField(primary_key=True) cinema = models.CharField(max_length=50) zz_code = models.CharField(max_length=50) show_date = models.DateField() # 排片目标日期 is_ai_show = models.BooleanField(default=True) # 当is_ai_show为True时,记录为ai生成的排片,否则为影院真实排片 ai_model = models.CharField(default='', max_length=100) # ai生成排片时使用的模型 template = models.TextField(default='') # ai生成排片时的模板日期排片数据,csv格式 temp_date = models.CharField(max_length=50, default='') # 模板数据日期 target = models.TextField(default='') # 目标日期已排影片数据,csv格式 show = models.TextField() # 目标日期ai生成的排片数据,csv格式 sales = models.CharField(max_length=50) # ai排片预期收入 prompt = models.TextField() # 生成的用户提示词部分 result = models.TextField() # ai返回结果中最终输出部分 message = models.TextField() # ai返回结果的完整信息 created_at = models.DateTimeField(auto_now_add=True) # ai返回结果的时间 updated_at = models.DateTimeField(auto_now=True) take_times = models.IntegerField(default=0) # 从提示词发给ai到取得返回结果的时间,单位秒 take_tokens = models.CharField(default='', max_length=2000) # ai返回结果中token消耗部分的信息 prompt_version = models.CharField(max_length=50, default='') # 使用的提示词版本 def __str__(self): return self.cinema class Meta: verbose_name = 'AI排片数据' verbose_name_plural = 'AI排片数据' db_table = 'ai_show_result' class CinemaHall(models.Model): id = models.AutoField(primary_key=True) cinema_code = models.CharField(max_length=50) hall_id = models.CharField(max_length=50) hall_name = models.CharField(max_length=50) hall_type = models.CharField(max_length=500, default='') def __str__(self): return self.hall_name class Meta: verbose_name = '影厅数据' verbose_name_plural = '影厅数据' db_table = 'ai_show_hall' class AiModel(models.Model): id = models.AutoField(primary_key=True) config_name = models.CharField(max_length=50) base_url = models.CharField(max_length=100) api_key = models.CharField(max_length=50) model_name = models.CharField(max_length=500, default='') delete_flag = models.BooleanField(default=False) current_used = models.BooleanField(default=False) def __str__(self): return self.config_name class Meta: verbose_name = '模型配置' verbose_name_plural = '模型配置' db_table = 'ai_model_configs' class AiRuntime(models.Model): id = models.AutoField(primary_key=True) runtime_key = models.CharField(max_length=50) runtime_val = models.TextField() def __str__(self): return self.runtime_key class Meta: verbose_name = 'AI运行时' verbose_name_plural = 'AI运行时' db_table = 'ai_runtime' class MovieHotInfo(models.Model): id = models.AutoField(primary_key=True) movie_zz_code = models.CharField(max_length=50) movie_name = models.CharField(max_length=50) req_date = models.DateField() api_response = models.TextField() show_type = models.CharField(max_length=500, default='') title = models.CharField(max_length=1000, default='') wants = models.CharField(max_length=50, default='') hots = models.CharField(max_length=50, default='') day1_val = models.CharField(max_length=50, default='') day2_val = models.CharField(max_length=50, default='') day3_val = models.CharField(max_length=50, default='') day4_val = models.CharField(max_length=50, default='') day5_val = models.CharField(max_length=50, default='') day_data = models.TextField(default='') def __str__(self): return self.movie_name class Meta: verbose_name = 'AI影片热度信息' verbose_name_plural = 'AI影片热度信息' db_table = 'ai_movie_hot' class NewMovieSuggestion(models.Model): id = models.AutoField(primary_key=True) cinema = models.CharField(max_length=50, default='') zz_code = models.CharField(max_length=50, default='') movie_zz_code = models.CharField(max_length=50, default='') movie_name = models.CharField(max_length=50, default='') suggestion = models.CharField(max_length=50, default='') delete_flag = models.BooleanField(default=False) def __str__(self): return self.movie_name class Meta: verbose_name = '新片推荐排片数' verbose_name_plural = '新片推荐排片数' db_table = 'ai_new_movie_suggestion'