summaryrefslogtreecommitdiff
path: root/db/migrations/0140_careless_agent_zero.sql
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-06-17 09:02:32 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-06-17 09:02:32 +0000
commit7a1524ba54f43d0f2a19e4bca2c6a2e0b01c5ef1 (patch)
treedaa214d404c7fc78b32419a028724e5671a6c7a4 /db/migrations/0140_careless_agent_zero.sql
parentfa6a6093014c5d60188edfc9c4552e81c4b97bd1 (diff)
(대표님) 20250617 18시 작업사항
Diffstat (limited to 'db/migrations/0140_careless_agent_zero.sql')
-rw-r--r--db/migrations/0140_careless_agent_zero.sql42
1 files changed, 42 insertions, 0 deletions
diff --git a/db/migrations/0140_careless_agent_zero.sql b/db/migrations/0140_careless_agent_zero.sql
new file mode 100644
index 00000000..53bd8724
--- /dev/null
+++ b/db/migrations/0140_careless_agent_zero.sql
@@ -0,0 +1,42 @@
+DROP VIEW "public"."attachment_revision_history";--> statement-breakpoint
+CREATE VIEW "public"."attachment_revision_history" AS (
+ SELECT
+ br.id as rfq_id,
+ br.rfq_code,
+ ba.id as attachment_id,
+ ba.attachment_type,
+ ba.serial_no,
+
+ -- 발주처 리비전 정보
+ rev.id as client_revision_id,
+ rev.revision_no as client_revision_no,
+ rev.original_file_name as client_file_name,
+ rev.file_size as client_file_size,
+ rev.file_path as client_file_path,
+ rev.revision_comment as client_revision_comment,
+ rev.created_at as client_revision_created_at,
+ rev.is_latest as is_latest_client_revision,
+
+ -- 벤더 응답 통계
+ COALESCE(response_stats.total_responses, 0) as total_vendor_responses,
+ COALESCE(response_stats.responded_count, 0) as responded_vendors,
+ COALESCE(response_stats.pending_count, 0) as pending_vendors,
+ COALESCE(response_stats.total_files, 0) as total_response_files
+
+ FROM b_rfqs br
+ JOIN b_rfq_attachments ba ON br.id = ba.rfq_id
+ JOIN b_rfq_attachment_revisions rev ON ba.id = rev.attachment_id
+ LEFT JOIN (
+ SELECT
+ var.attachment_id,
+ COUNT(*) as total_responses,
+ COUNT(CASE WHEN var.response_status = 'RESPONDED' THEN 1 END) as responded_count,
+ COUNT(CASE WHEN var.response_status = 'NOT_RESPONDED' THEN 1 END) as pending_count,
+ COUNT(vra.id) as total_files
+ FROM vendor_attachment_responses var
+ LEFT JOIN vendor_response_attachments_b vra ON var.id = vra.vendor_response_id
+ GROUP BY var.attachment_id
+ ) response_stats ON ba.id = response_stats.attachment_id
+
+ ORDER BY ba.id, rev.created_at DESC
+); \ No newline at end of file