from django.db import models from simplepro.components import fields from public.models import BaseModel from utils import constant class AIConfig(BaseModel): """ AI模型配置表 """ api_base = fields.CharField( null=True, blank=True, max_length=128, verbose_name="API(代理)地址" ) api_key = fields.CharField( null=True, blank=True, max_length=128, verbose_name="API密钥" ) llm_model = fields.CharField( null=True, blank=True, max_length=16, verbose_name="LLM模型" ) class Meta: verbose_name = "AI模型配置" verbose_name_plural = "AI模型配置" def __str__(self): return self.llm_model class GitConfig(BaseModel): """ Git服务配置表 """ pr_ai = fields.ForeignKey( AIConfig, null=True, blank=True, on_delete=models.SET_NULL, verbose_name="AI模型", ) git_name = fields.CharField( null=True, blank=True, max_length=16, verbose_name="Git名称" ) git_type = fields.RadioField( choices=constant.GIT_TYPE, default=0, verbose_name="Git类型" ) git_url = fields.CharField( null=True, blank=True, max_length=128, verbose_name="Git地址" ) access_token = fields.CharField( null=True, blank=True, max_length=128, verbose_name="访问密钥" ) class Meta: verbose_name = "Git服务配置" verbose_name_plural = "Git服务配置" def __str__(self): return self.git_name class ProjectConfig(BaseModel): """ 项目配置表 """ git_config = fields.ForeignKey( GitConfig, null=True, blank=True, on_delete=models.SET_NULL, verbose_name="Git配置", ) project_id = fields.CharField( null=True, blank=True, max_length=8, verbose_name="项目ID" ) project_name = fields.CharField( null=True, blank=True, max_length=16, verbose_name="项目名称" ) project_secret = fields.CharField( null=True, blank=True, max_length=128, verbose_name="项目密钥" ) commands = fields.CheckboxField( choices=constant.DEFAULT_COMMANDS, default=["/review"], max_length=256, verbose_name="默认命令", ) is_enable = fields.SwitchField( default=True, verbose_name="是否启用" ) class Meta: verbose_name = "项目配置" verbose_name_plural = "项目配置" def __str__(self): return f"{self.project_name}-{self.project_id}"