feat: support basic user system

This commit is contained in:
xkm
2026-04-07 21:21:18 +08:00
parent deaa14f9f6
commit 1aecb4424c
22 changed files with 654 additions and 65 deletions

View File

@@ -97,7 +97,7 @@ INSERT INTO buyer_requests (
request_status
)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
RETURNING id, asset_id, task_type, model_type, buyer_budget_min, buyer_budget_max, privacy_requirement, usage_purpose, request_note, request_status, created_at, updated_at
RETURNING id, asset_id, task_type, model_type, buyer_budget_min, buyer_budget_max, privacy_requirement, usage_purpose, request_note, request_status, created_at, updated_at, user_id
`
type CreateBuyerRequestParams struct {
@@ -138,6 +138,7 @@ func (q *Queries) CreateBuyerRequest(ctx context.Context, arg CreateBuyerRequest
&i.RequestStatus,
&i.CreatedAt,
&i.UpdatedAt,
&i.UserID,
)
return i, err
}
@@ -195,7 +196,33 @@ type CreateDataAssetParams struct {
AssetStatus string `json:"asset_status"`
}
func (q *Queries) CreateDataAsset(ctx context.Context, arg CreateDataAssetParams) (DataAsset, error) {
type CreateDataAssetRow struct {
ID pgtype.UUID `json:"id"`
AssetName string `json:"asset_name"`
AssetType string `json:"asset_type"`
Domain string `json:"domain"`
ApplicationScene pgtype.Text `json:"application_scene"`
DataDescription string `json:"data_description"`
DataScale string `json:"data_scale"`
CollectionMethod string `json:"collection_method"`
LabelingStatus pgtype.Text `json:"labeling_status"`
UpdateFrequency pgtype.Text `json:"update_frequency"`
PrivacyLevel string `json:"privacy_level"`
PermissionMode string `json:"permission_mode"`
SupportsValidation bool `json:"supports_validation"`
SellerExpectedPriceMin pgtype.Numeric `json:"seller_expected_price_min"`
SellerExpectedPriceMax pgtype.Numeric `json:"seller_expected_price_max"`
QualityLevel pgtype.Text `json:"quality_level"`
ScarcityLevel pgtype.Text `json:"scarcity_level"`
BaseValueScore pgtype.Numeric `json:"base_value_score"`
BasePriceMin pgtype.Numeric `json:"base_price_min"`
BasePriceMax pgtype.Numeric `json:"base_price_max"`
AssetStatus string `json:"asset_status"`
CreatedAt pgtype.Timestamptz `json:"created_at"`
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
}
func (q *Queries) CreateDataAsset(ctx context.Context, arg CreateDataAssetParams) (CreateDataAssetRow, error) {
row := q.db.QueryRow(ctx, createDataAsset,
arg.AssetName,
arg.AssetType,
@@ -218,7 +245,7 @@ func (q *Queries) CreateDataAsset(ctx context.Context, arg CreateDataAssetParams
arg.BasePriceMax,
arg.AssetStatus,
)
var i DataAsset
var i CreateDataAssetRow
err := row.Scan(
&i.ID,
&i.AssetName,
@@ -262,7 +289,7 @@ INSERT INTO orders (
order_status
)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)
RETURNING id, asset_id, request_id, pricing_id, validation_id, asset_name, current_price, negotiation_min, negotiation_max, validation_used, delivery_mode, order_status, order_created_at, order_updated_at
RETURNING id, asset_id, request_id, pricing_id, validation_id, asset_name, current_price, negotiation_min, negotiation_max, validation_used, delivery_mode, order_status, order_created_at, order_updated_at, user_id
`
type CreateOrderParams struct {
@@ -309,6 +336,7 @@ func (q *Queries) CreateOrder(ctx context.Context, arg CreateOrderParams) (Order
&i.OrderStatus,
&i.OrderCreatedAt,
&i.OrderUpdatedAt,
&i.UserID,
)
return i, err
}
@@ -329,7 +357,7 @@ INSERT INTO pricing_results (
pricing_status
)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)
RETURNING id, asset_id, request_id, scenario_value_score, scenario_price_min, scenario_price_max, suggested_price, success_probability, pricing_reason_1, pricing_reason_2, pricing_reason_3, verification_suggestion, pricing_status, created_at, updated_at
RETURNING id, asset_id, request_id, scenario_value_score, scenario_price_min, scenario_price_max, suggested_price, success_probability, pricing_reason_1, pricing_reason_2, pricing_reason_3, verification_suggestion, pricing_status, created_at, updated_at, agent_task_match_explanation, agent_risk_advice, agent_budget_advice, agent_next_action
`
type CreatePricingResultParams struct {
@@ -379,6 +407,10 @@ func (q *Queries) CreatePricingResult(ctx context.Context, arg CreatePricingResu
&i.PricingStatus,
&i.CreatedAt,
&i.UpdatedAt,
&i.AgentTaskMatchExplanation,
&i.AgentRiskAdvice,
&i.AgentBudgetAdvice,
&i.AgentNextAction,
)
return i, err
}
@@ -397,7 +429,7 @@ INSERT INTO validations (
validation_finished_at
)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
RETURNING id, asset_id, request_id, validation_type, validation_requested, validation_status, validation_signal, validation_score, risk_warning, continue_recommendation, validation_created_at, validation_finished_at
RETURNING id, asset_id, request_id, validation_type, validation_requested, validation_status, validation_signal, validation_score, risk_warning, continue_recommendation, validation_created_at, validation_finished_at, agent_validation_explanation, agent_continue_trade_advice, agent_delivery_advice, agent_risk_notice
`
type CreateValidationParams struct {
@@ -440,12 +472,16 @@ func (q *Queries) CreateValidation(ctx context.Context, arg CreateValidationPara
&i.ContinueRecommendation,
&i.ValidationCreatedAt,
&i.ValidationFinishedAt,
&i.AgentValidationExplanation,
&i.AgentContinueTradeAdvice,
&i.AgentDeliveryAdvice,
&i.AgentRiskNotice,
)
return i, err
}
const getBuyerRequest = `-- name: GetBuyerRequest :one
SELECT id, asset_id, task_type, model_type, buyer_budget_min, buyer_budget_max, privacy_requirement, usage_purpose, request_note, request_status, created_at, updated_at
SELECT id, asset_id, task_type, model_type, buyer_budget_min, buyer_budget_max, privacy_requirement, usage_purpose, request_note, request_status, created_at, updated_at, user_id
FROM buyer_requests
WHERE id = $1
`
@@ -466,12 +502,13 @@ func (q *Queries) GetBuyerRequest(ctx context.Context, id pgtype.UUID) (BuyerReq
&i.RequestStatus,
&i.CreatedAt,
&i.UpdatedAt,
&i.UserID,
)
return i, err
}
const getDataAsset = `-- name: GetDataAsset :one
SELECT id, asset_name, asset_type, domain, application_scene, data_description, data_scale, collection_method, labeling_status, update_frequency, privacy_level, permission_mode, supports_validation, seller_expected_price_min, seller_expected_price_max, quality_level, scarcity_level, base_value_score, base_price_min, base_price_max, asset_status, created_at, updated_at
SELECT id, asset_name, asset_type, domain, application_scene, data_description, data_scale, collection_method, labeling_status, update_frequency, privacy_level, permission_mode, supports_validation, seller_expected_price_min, seller_expected_price_max, quality_level, scarcity_level, base_value_score, base_price_min, base_price_max, asset_status, created_at, updated_at, user_id, agent_asset_summary, agent_recommended_tasks, agent_risk_per_mission_advice, agent_asset_explanation
FROM data_assets
WHERE id = $1
`
@@ -503,12 +540,17 @@ func (q *Queries) GetDataAsset(ctx context.Context, id pgtype.UUID) (DataAsset,
&i.AssetStatus,
&i.CreatedAt,
&i.UpdatedAt,
&i.UserID,
&i.AgentAssetSummary,
&i.AgentRecommendedTasks,
&i.AgentRiskPerMissionAdvice,
&i.AgentAssetExplanation,
)
return i, err
}
const getOrder = `-- name: GetOrder :one
SELECT id, asset_id, request_id, pricing_id, validation_id, asset_name, current_price, negotiation_min, negotiation_max, validation_used, delivery_mode, order_status, order_created_at, order_updated_at
SELECT id, asset_id, request_id, pricing_id, validation_id, asset_name, current_price, negotiation_min, negotiation_max, validation_used, delivery_mode, order_status, order_created_at, order_updated_at, user_id
FROM orders
WHERE id = $1
`
@@ -531,12 +573,13 @@ func (q *Queries) GetOrder(ctx context.Context, id pgtype.UUID) (Order, error) {
&i.OrderStatus,
&i.OrderCreatedAt,
&i.OrderUpdatedAt,
&i.UserID,
)
return i, err
}
const getPricingResult = `-- name: GetPricingResult :one
SELECT id, asset_id, request_id, scenario_value_score, scenario_price_min, scenario_price_max, suggested_price, success_probability, pricing_reason_1, pricing_reason_2, pricing_reason_3, verification_suggestion, pricing_status, created_at, updated_at
SELECT id, asset_id, request_id, scenario_value_score, scenario_price_min, scenario_price_max, suggested_price, success_probability, pricing_reason_1, pricing_reason_2, pricing_reason_3, verification_suggestion, pricing_status, created_at, updated_at, agent_task_match_explanation, agent_risk_advice, agent_budget_advice, agent_next_action
FROM pricing_results
WHERE id = $1
`
@@ -560,12 +603,16 @@ func (q *Queries) GetPricingResult(ctx context.Context, id pgtype.UUID) (Pricing
&i.PricingStatus,
&i.CreatedAt,
&i.UpdatedAt,
&i.AgentTaskMatchExplanation,
&i.AgentRiskAdvice,
&i.AgentBudgetAdvice,
&i.AgentNextAction,
)
return i, err
}
const getValidation = `-- name: GetValidation :one
SELECT id, asset_id, request_id, validation_type, validation_requested, validation_status, validation_signal, validation_score, risk_warning, continue_recommendation, validation_created_at, validation_finished_at
SELECT id, asset_id, request_id, validation_type, validation_requested, validation_status, validation_signal, validation_score, risk_warning, continue_recommendation, validation_created_at, validation_finished_at, agent_validation_explanation, agent_continue_trade_advice, agent_delivery_advice, agent_risk_notice
FROM validations
WHERE id = $1
`
@@ -586,12 +633,16 @@ func (q *Queries) GetValidation(ctx context.Context, id pgtype.UUID) (Validation
&i.ContinueRecommendation,
&i.ValidationCreatedAt,
&i.ValidationFinishedAt,
&i.AgentValidationExplanation,
&i.AgentContinueTradeAdvice,
&i.AgentDeliveryAdvice,
&i.AgentRiskNotice,
)
return i, err
}
const listBuyerRequests = `-- name: ListBuyerRequests :many
SELECT id, asset_id, task_type, model_type, buyer_budget_min, buyer_budget_max, privacy_requirement, usage_purpose, request_note, request_status, created_at, updated_at
SELECT id, asset_id, task_type, model_type, buyer_budget_min, buyer_budget_max, privacy_requirement, usage_purpose, request_note, request_status, created_at, updated_at, user_id
FROM buyer_requests
ORDER BY created_at DESC, id DESC
LIMIT $1 OFFSET $2
@@ -624,6 +675,7 @@ func (q *Queries) ListBuyerRequests(ctx context.Context, arg ListBuyerRequestsPa
&i.RequestStatus,
&i.CreatedAt,
&i.UpdatedAt,
&i.UserID,
); err != nil {
return nil, err
}
@@ -636,7 +688,7 @@ func (q *Queries) ListBuyerRequests(ctx context.Context, arg ListBuyerRequestsPa
}
const listDataAssets = `-- name: ListDataAssets :many
SELECT id, asset_name, asset_type, domain, application_scene, data_description, data_scale, collection_method, labeling_status, update_frequency, privacy_level, permission_mode, supports_validation, seller_expected_price_min, seller_expected_price_max, quality_level, scarcity_level, base_value_score, base_price_min, base_price_max, asset_status, created_at, updated_at
SELECT id, asset_name, asset_type, domain, application_scene, data_description, data_scale, collection_method, labeling_status, update_frequency, privacy_level, permission_mode, supports_validation, seller_expected_price_min, seller_expected_price_max, quality_level, scarcity_level, base_value_score, base_price_min, base_price_max, asset_status, created_at, updated_at, user_id, agent_asset_summary, agent_recommended_tasks, agent_risk_per_mission_advice, agent_asset_explanation
FROM data_assets
WHERE (
NULLIF($3::text, '') IS NULL
@@ -714,6 +766,11 @@ func (q *Queries) ListDataAssets(ctx context.Context, arg ListDataAssetsParams)
&i.AssetStatus,
&i.CreatedAt,
&i.UpdatedAt,
&i.UserID,
&i.AgentAssetSummary,
&i.AgentRecommendedTasks,
&i.AgentRiskPerMissionAdvice,
&i.AgentAssetExplanation,
); err != nil {
return nil, err
}
@@ -726,7 +783,7 @@ func (q *Queries) ListDataAssets(ctx context.Context, arg ListDataAssetsParams)
}
const listOrders = `-- name: ListOrders :many
SELECT id, asset_id, request_id, pricing_id, validation_id, asset_name, current_price, negotiation_min, negotiation_max, validation_used, delivery_mode, order_status, order_created_at, order_updated_at
SELECT id, asset_id, request_id, pricing_id, validation_id, asset_name, current_price, negotiation_min, negotiation_max, validation_used, delivery_mode, order_status, order_created_at, order_updated_at, user_id
FROM orders
WHERE NULLIF($3::text, '') IS NULL
OR order_status = $3::text
@@ -764,6 +821,7 @@ func (q *Queries) ListOrders(ctx context.Context, arg ListOrdersParams) ([]Order
&i.OrderStatus,
&i.OrderCreatedAt,
&i.OrderUpdatedAt,
&i.UserID,
); err != nil {
return nil, err
}
@@ -776,7 +834,7 @@ func (q *Queries) ListOrders(ctx context.Context, arg ListOrdersParams) ([]Order
}
const listPricingResults = `-- name: ListPricingResults :many
SELECT id, asset_id, request_id, scenario_value_score, scenario_price_min, scenario_price_max, suggested_price, success_probability, pricing_reason_1, pricing_reason_2, pricing_reason_3, verification_suggestion, pricing_status, created_at, updated_at
SELECT id, asset_id, request_id, scenario_value_score, scenario_price_min, scenario_price_max, suggested_price, success_probability, pricing_reason_1, pricing_reason_2, pricing_reason_3, verification_suggestion, pricing_status, created_at, updated_at, agent_task_match_explanation, agent_risk_advice, agent_budget_advice, agent_next_action
FROM pricing_results
ORDER BY created_at DESC, id DESC
LIMIT $1 OFFSET $2
@@ -812,6 +870,10 @@ func (q *Queries) ListPricingResults(ctx context.Context, arg ListPricingResults
&i.PricingStatus,
&i.CreatedAt,
&i.UpdatedAt,
&i.AgentTaskMatchExplanation,
&i.AgentRiskAdvice,
&i.AgentBudgetAdvice,
&i.AgentNextAction,
); err != nil {
return nil, err
}
@@ -824,7 +886,7 @@ func (q *Queries) ListPricingResults(ctx context.Context, arg ListPricingResults
}
const listValidations = `-- name: ListValidations :many
SELECT id, asset_id, request_id, validation_type, validation_requested, validation_status, validation_signal, validation_score, risk_warning, continue_recommendation, validation_created_at, validation_finished_at
SELECT id, asset_id, request_id, validation_type, validation_requested, validation_status, validation_signal, validation_score, risk_warning, continue_recommendation, validation_created_at, validation_finished_at, agent_validation_explanation, agent_continue_trade_advice, agent_delivery_advice, agent_risk_notice
FROM validations
ORDER BY validation_created_at DESC, id DESC
LIMIT $1 OFFSET $2
@@ -857,6 +919,10 @@ func (q *Queries) ListValidations(ctx context.Context, arg ListValidationsParams
&i.ContinueRecommendation,
&i.ValidationCreatedAt,
&i.ValidationFinishedAt,
&i.AgentValidationExplanation,
&i.AgentContinueTradeAdvice,
&i.AgentDeliveryAdvice,
&i.AgentRiskNotice,
); err != nil {
return nil, err
}
@@ -873,7 +939,7 @@ UPDATE data_assets
SET asset_status = $2,
updated_at = now()
WHERE id = $1
RETURNING id, asset_name, asset_type, domain, application_scene, data_description, data_scale, collection_method, labeling_status, update_frequency, privacy_level, permission_mode, supports_validation, seller_expected_price_min, seller_expected_price_max, quality_level, scarcity_level, base_value_score, base_price_min, base_price_max, asset_status, created_at, updated_at
RETURNING id, asset_name, asset_type, domain, application_scene, data_description, data_scale, collection_method, labeling_status, update_frequency, privacy_level, permission_mode, supports_validation, seller_expected_price_min, seller_expected_price_max, quality_level, scarcity_level, base_value_score, base_price_min, base_price_max, asset_status, created_at, updated_at, user_id, agent_asset_summary, agent_recommended_tasks, agent_risk_per_mission_advice, agent_asset_explanation
`
type UpdateDataAssetStatusParams struct {
@@ -908,6 +974,11 @@ func (q *Queries) UpdateDataAssetStatus(ctx context.Context, arg UpdateDataAsset
&i.AssetStatus,
&i.CreatedAt,
&i.UpdatedAt,
&i.UserID,
&i.AgentAssetSummary,
&i.AgentRecommendedTasks,
&i.AgentRiskPerMissionAdvice,
&i.AgentAssetExplanation,
)
return i, err
}
@@ -917,7 +988,7 @@ UPDATE orders
SET order_status = $2,
order_updated_at = now()
WHERE id = $1
RETURNING id, asset_id, request_id, pricing_id, validation_id, asset_name, current_price, negotiation_min, negotiation_max, validation_used, delivery_mode, order_status, order_created_at, order_updated_at
RETURNING id, asset_id, request_id, pricing_id, validation_id, asset_name, current_price, negotiation_min, negotiation_max, validation_used, delivery_mode, order_status, order_created_at, order_updated_at, user_id
`
type UpdateOrderStatusParams struct {
@@ -943,6 +1014,7 @@ func (q *Queries) UpdateOrderStatus(ctx context.Context, arg UpdateOrderStatusPa
&i.OrderStatus,
&i.OrderCreatedAt,
&i.OrderUpdatedAt,
&i.UserID,
)
return i, err
}
@@ -956,7 +1028,7 @@ SET validation_status = $2,
continue_recommendation = $6,
validation_finished_at = $7
WHERE id = $1
RETURNING id, asset_id, request_id, validation_type, validation_requested, validation_status, validation_signal, validation_score, risk_warning, continue_recommendation, validation_created_at, validation_finished_at
RETURNING id, asset_id, request_id, validation_type, validation_requested, validation_status, validation_signal, validation_score, risk_warning, continue_recommendation, validation_created_at, validation_finished_at, agent_validation_explanation, agent_continue_trade_advice, agent_delivery_advice, agent_risk_notice
`
type UpdateValidationResultParams struct {
@@ -993,6 +1065,10 @@ func (q *Queries) UpdateValidationResult(ctx context.Context, arg UpdateValidati
&i.ContinueRecommendation,
&i.ValidationCreatedAt,
&i.ValidationFinishedAt,
&i.AgentValidationExplanation,
&i.AgentContinueTradeAdvice,
&i.AgentDeliveryAdvice,
&i.AgentRiskNotice,
)
return i, err
}