233 lines
5.4 KiB
SQL
233 lines
5.4 KiB
SQL
-- name: CreateDataAsset :one
|
|
INSERT INTO data_assets (
|
|
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
|
|
)
|
|
VALUES (
|
|
$1, $2, $3, $4, $5, $6, $7, $8, $9, $10,
|
|
$11, $12, $13, $14, $15, $16, $17, $18, $19, $20
|
|
)
|
|
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;
|
|
|
|
-- name: CountDataAssets :one
|
|
SELECT COUNT(*)
|
|
FROM data_assets
|
|
WHERE (
|
|
NULLIF(sqlc.narg(keyword)::text, '') IS NULL
|
|
OR asset_name ILIKE '%' || sqlc.narg(keyword)::text || '%'
|
|
OR data_description ILIKE '%' || sqlc.narg(keyword)::text || '%'
|
|
)
|
|
AND (
|
|
NULLIF(sqlc.narg(asset_type)::text, '') IS NULL
|
|
OR asset_type = sqlc.narg(asset_type)::text
|
|
)
|
|
AND (
|
|
NULLIF(sqlc.narg(domain)::text, '') IS NULL
|
|
OR domain = sqlc.narg(domain)::text
|
|
)
|
|
AND (
|
|
NULLIF(sqlc.narg(privacy_level)::text, '') IS NULL
|
|
OR privacy_level = sqlc.narg(privacy_level)::text
|
|
)
|
|
AND (
|
|
sqlc.narg(supports_validation)::boolean IS NULL
|
|
OR supports_validation = sqlc.narg(supports_validation)::boolean
|
|
);
|
|
|
|
-- name: GetDataAsset :one
|
|
SELECT *
|
|
FROM data_assets
|
|
WHERE id = $1;
|
|
|
|
-- name: ListDataAssets :many
|
|
SELECT *
|
|
FROM data_assets
|
|
WHERE (
|
|
NULLIF(sqlc.narg(keyword)::text, '') IS NULL
|
|
OR asset_name ILIKE '%' || sqlc.narg(keyword)::text || '%'
|
|
OR data_description ILIKE '%' || sqlc.narg(keyword)::text || '%'
|
|
)
|
|
AND (
|
|
NULLIF(sqlc.narg(asset_type)::text, '') IS NULL
|
|
OR asset_type = sqlc.narg(asset_type)::text
|
|
)
|
|
AND (
|
|
NULLIF(sqlc.narg(domain)::text, '') IS NULL
|
|
OR domain = sqlc.narg(domain)::text
|
|
)
|
|
AND (
|
|
NULLIF(sqlc.narg(privacy_level)::text, '') IS NULL
|
|
OR privacy_level = sqlc.narg(privacy_level)::text
|
|
)
|
|
AND (
|
|
sqlc.narg(supports_validation)::boolean IS NULL
|
|
OR supports_validation = sqlc.narg(supports_validation)::boolean
|
|
)
|
|
ORDER BY created_at DESC, id DESC
|
|
LIMIT $1 OFFSET $2;
|
|
|
|
-- name: UpdateDataAssetStatus :one
|
|
UPDATE data_assets
|
|
SET asset_status = $2,
|
|
updated_at = now()
|
|
WHERE id = $1
|
|
RETURNING *;
|
|
|
|
-- name: CreateBuyerRequest :one
|
|
INSERT INTO buyer_requests (
|
|
asset_id,
|
|
task_type,
|
|
model_type,
|
|
buyer_budget_min,
|
|
buyer_budget_max,
|
|
privacy_requirement,
|
|
usage_purpose,
|
|
request_note,
|
|
request_status
|
|
)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
|
|
RETURNING *;
|
|
|
|
-- name: GetBuyerRequest :one
|
|
SELECT *
|
|
FROM buyer_requests
|
|
WHERE id = $1;
|
|
|
|
-- name: ListBuyerRequests :many
|
|
SELECT *
|
|
FROM buyer_requests
|
|
ORDER BY created_at DESC, id DESC
|
|
LIMIT $1 OFFSET $2;
|
|
|
|
-- name: CreatePricingResult :one
|
|
INSERT INTO pricing_results (
|
|
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
|
|
)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)
|
|
RETURNING *;
|
|
|
|
-- name: GetPricingResult :one
|
|
SELECT *
|
|
FROM pricing_results
|
|
WHERE id = $1;
|
|
|
|
-- name: ListPricingResults :many
|
|
SELECT *
|
|
FROM pricing_results
|
|
ORDER BY created_at DESC, id DESC
|
|
LIMIT $1 OFFSET $2;
|
|
|
|
-- name: CreateValidation :one
|
|
INSERT INTO validations (
|
|
asset_id,
|
|
request_id,
|
|
validation_type,
|
|
validation_requested,
|
|
validation_status,
|
|
validation_signal,
|
|
validation_score,
|
|
risk_warning,
|
|
continue_recommendation,
|
|
validation_finished_at
|
|
)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
|
|
RETURNING *;
|
|
|
|
-- name: UpdateValidationResult :one
|
|
UPDATE validations
|
|
SET validation_status = $2,
|
|
validation_signal = $3,
|
|
validation_score = $4,
|
|
risk_warning = $5,
|
|
continue_recommendation = $6,
|
|
validation_finished_at = $7
|
|
WHERE id = $1
|
|
RETURNING *;
|
|
|
|
-- name: GetValidation :one
|
|
SELECT *
|
|
FROM validations
|
|
WHERE id = $1;
|
|
|
|
-- name: ListValidations :many
|
|
SELECT *
|
|
FROM validations
|
|
ORDER BY validation_created_at DESC, id DESC
|
|
LIMIT $1 OFFSET $2;
|
|
|
|
-- name: CountValidations :one
|
|
SELECT COUNT(*)
|
|
FROM validations;
|
|
|
|
-- name: CreateOrder :one
|
|
INSERT INTO orders (
|
|
asset_id,
|
|
request_id,
|
|
pricing_id,
|
|
validation_id,
|
|
asset_name,
|
|
current_price,
|
|
negotiation_min,
|
|
negotiation_max,
|
|
validation_used,
|
|
delivery_mode,
|
|
order_status
|
|
)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)
|
|
RETURNING *;
|
|
|
|
-- name: GetOrder :one
|
|
SELECT *
|
|
FROM orders
|
|
WHERE id = $1;
|
|
|
|
-- name: ListOrders :many
|
|
SELECT *
|
|
FROM orders
|
|
WHERE NULLIF(sqlc.narg(order_status)::text, '') IS NULL
|
|
OR order_status = sqlc.narg(order_status)::text
|
|
ORDER BY order_created_at DESC, id DESC
|
|
LIMIT $1 OFFSET $2;
|
|
|
|
-- name: CountOrders :one
|
|
SELECT COUNT(*)
|
|
FROM orders
|
|
WHERE NULLIF(sqlc.narg(order_status)::text, '') IS NULL
|
|
OR order_status = sqlc.narg(order_status)::text;
|
|
|
|
-- name: UpdateOrderStatus :one
|
|
UPDATE orders
|
|
SET order_status = $2,
|
|
order_updated_at = now()
|
|
WHERE id = $1
|
|
RETURNING *;
|