You've already forked agentic-coding-workflow
主流程
This commit is contained in:
+24
-18
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user