PMFlow/backend/app/api/sstc_api/shared.py

57 lines
1.9 KiB
Python

from __future__ import annotations
from datetime import datetime
from io import BytesIO
from typing import Any, Optional
from uuid import uuid4
from fastapi import APIRouter, BackgroundTasks, Body, Depends, File, HTTPException, Query, UploadFile
from fastapi.responses import StreamingResponse
from pydantic import BaseModel
from sqlalchemy import and_, delete, select
from sqlalchemy.ext.asyncio import AsyncSession
from ...core.response import success_response
from ...database import get_db
from ...dependencies import get_current_user, require_project_member_or_manager
from ...models import (
AICallLog,
AlignmentRecord,
Integration,
ModelRequirementBinding,
ModelVersion,
ProjectSignalLink,
Signal,
Task,
TruthNode,
User,
UserProject,
)
from ...schemas.sstc import (
AlignmentConfirmRequest,
AlignmentStartRequest,
CharterUpdateRequest,
ReleaseCreateRequest,
ReleaseStatusPatchRequest,
ReleaseVerificationItemPatchRequest,
ReviewArchiveRequest,
ReviewContentPatchRequest,
ReviewCreateRequest,
ReviewImprovementToTaskRequest,
TaskStatusPatchRequest,
WorkloadOptimizeRequest,
)
from ...services import skill_score_service, workload_service
from ...services.ai_pmo_kernel_service import AIPMOKernelService
from ...services.ai_service import AIService
from ...services.auth import has_any_role
from ...services.budget_enforcement_service import BudgetEnforcementService
from ...services.feishu_integration import get_feishu_service
from ...services.llm import llm_service
from ...services.operation_log_service import log_operation
from ...services.skill_service import recommend_personnel
from ...services.sstc_service import ALIGNED_STATUSES, DONE_STATUSES, RELEASE_VERIFIED_STATUSES, SSTCService
from ...services.task_persistence import build_task_create_draft, persist_task
from ...utils.title import compact_title
from ...utils.timezone import CN_TZ, now_cn_aware, now_cn_naive