pr_manager/apps/pr/models.py
2025-02-25 14:29:18 +08:00

95 lines
2.4 KiB
Python

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模型配置"
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="gitlab",
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服务配置"
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 = "项目配置"