主流程

This commit is contained in:
2026-06-10 17:53:09 +08:00
parent c6f239f424
commit b20435c027
66 changed files with 2779 additions and 1181 deletions
+24 -18
View File
@@ -20,8 +20,8 @@ import (
"github.com/jackc/pgx/v5/pgtype"
"github.com/jackc/pgx/v5/pgxpool"
"github.com/yan1h/agent-coding-workflow/internal/infra/errs"
chatsqlc "github.com/yan1h/agent-coding-workflow/internal/chat/sqlc"
"github.com/yan1h/agent-coding-workflow/internal/infra/errs"
)
// Postgres epoch: 2000-01-01 00:00:00 UTC
@@ -104,14 +104,15 @@ type Tx interface {
// InsertConversationParams 是 InsertConversation 的参数。
type InsertConversationParams struct {
ID uuid.UUID
UserID uuid.UUID
ProjectID *uuid.UUID
WorkspaceID *uuid.UUID
IssueID *uuid.UUID
ModelID uuid.UUID
SystemPrompt string
Title *string
ID uuid.UUID
UserID uuid.UUID
ProjectID *uuid.UUID
WorkspaceID *uuid.UUID
IssueID *uuid.UUID
RequirementID *uuid.UUID
ModelID uuid.UUID
SystemPrompt string
Title *string
}
// UpdateMessageOKParams 是 UpdateMessageOK 的参数。
@@ -313,6 +314,7 @@ func convFromRow(r chatsqlc.Conversation) *Conversation {
ProjectID: fromPgUUIDPtr(r.ProjectID),
WorkspaceID: fromPgUUIDPtr(r.WorkspaceID),
IssueID: fromPgUUIDPtr(r.IssueID),
RequirementID: fromPgUUIDPtr(r.RequirementID),
ModelID: fromPgUUID(r.ModelID),
SystemPrompt: r.SystemPrompt,
Title: r.Title,
@@ -469,14 +471,15 @@ func dayUsageRowFromRow(r chatsqlc.SummarizeUsageByDayRow) DayUsageRow {
func (r *pgRepo) InsertConversation(ctx context.Context, p InsertConversationParams) (*Conversation, error) {
row, err := r.q.InsertConversation(ctx, chatsqlc.InsertConversationParams{
ID: toPgUUID(p.ID),
UserID: toPgUUID(p.UserID),
ProjectID: toPgUUIDPtr(p.ProjectID),
WorkspaceID: toPgUUIDPtr(p.WorkspaceID),
IssueID: toPgUUIDPtr(p.IssueID),
ModelID: toPgUUID(p.ModelID),
SystemPrompt: p.SystemPrompt,
Title: p.Title,
ID: toPgUUID(p.ID),
UserID: toPgUUID(p.UserID),
ProjectID: toPgUUIDPtr(p.ProjectID),
WorkspaceID: toPgUUIDPtr(p.WorkspaceID),
IssueID: toPgUUIDPtr(p.IssueID),
ModelID: toPgUUID(p.ModelID),
SystemPrompt: p.SystemPrompt,
Title: p.Title,
RequirementID: toPgUUIDPtr(p.RequirementID),
})
if err != nil {
return nil, errs.Wrap(translatePgError(err), errs.CodeInternal, "insert conversation")
@@ -500,12 +503,15 @@ func (r *pgRepo) ListConversationsByUser(ctx context.Context, userID uuid.UUID,
if limit <= 0 {
limit = 20
}
// Column2..Column6 与 SQL 位置参数一一对应:$2=project, $3=workspace,
// $4=issue, $5=requirement, $6=title(sqlc 未命名参数按序生成字段)。
rows, err := r.q.ListConversationsByUser(ctx, chatsqlc.ListConversationsByUserParams{
UserID: toPgUUID(userID),
Column2: toPgUUIDPtr(f.ProjectID),
Column3: toPgUUIDPtr(f.WorkspaceID),
Column4: toPgUUIDPtr(f.IssueID),
Column5: f.TitleQuery,
Column5: toPgUUIDPtr(f.RequirementID),
Column6: f.TitleQuery,
Limit: int32(limit),
})
if err != nil {