1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
ALTER TABLE "tech_vendor_candidates" DISABLE ROW LEVEL SECURITY;--> statement-breakpoint
DROP VIEW "public"."tech_vendor_candidates_with_vendor_info";--> statement-breakpoint
DROP VIEW "public"."tech_vendor_items_view";--> statement-breakpoint
DROP VIEW "public"."tech_vendor_detail_view";--> statement-breakpoint
DROP TABLE "tech_vendor_candidates" CASCADE;--> statement-breakpoint
ALTER TABLE "tech_vendor_contacts" ADD COLUMN "contact_title" varchar(100);--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" ADD COLUMN "shipbuilding_item_id" integer;--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" ADD COLUMN "offshore_top_item_id" integer;--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" ADD COLUMN "offshore_hull_item_id" integer;--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" ADD CONSTRAINT "tech_vendor_possible_items_shipbuilding_item_id_item_shipbuilding_id_fk" FOREIGN KEY ("shipbuilding_item_id") REFERENCES "public"."item_shipbuilding"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" ADD CONSTRAINT "tech_vendor_possible_items_offshore_top_item_id_item_offshore_top_id_fk" FOREIGN KEY ("offshore_top_item_id") REFERENCES "public"."item_offshore_top"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" ADD CONSTRAINT "tech_vendor_possible_items_offshore_hull_item_id_item_offshore_hull_id_fk" FOREIGN KEY ("offshore_hull_item_id") REFERENCES "public"."item_offshore_hull"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" DROP COLUMN "vendor_code";--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" DROP COLUMN "vendor_email";--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" DROP COLUMN "item_code";--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" DROP COLUMN "work_type";--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" DROP COLUMN "ship_types";--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" DROP COLUMN "item_list";--> statement-breakpoint
ALTER TABLE "tech_vendor_possible_items" DROP COLUMN "sub_item_list";--> statement-breakpoint
CREATE VIEW "public"."tech_vendor_detail_view" AS (select "id", "vendor_name", "vendor_code", "tax_id", "address", "country", "country_eng", "country_fab", "agent_name", "agent_phone", "agent_email", "phone", "email", "website", "status", "tech_vendor_type", "representative_name", "representative_email", "representative_phone", "representative_birth", "created_at", "updated_at",
(SELECT COALESCE(
json_agg(
json_build_object(
'id', c.id,
'contactName', c.contact_name,
'contactPosition', c.contact_position,
'contactTitle', c.contact_title,
'contactEmail', c.contact_email,
'contactPhone', c.contact_phone,
'isPrimary', c.is_primary
)
),
'[]'::json
)
FROM tech_vendor_contacts c
WHERE c.vendor_id = tech_vendors.id)
as "contacts",
(SELECT COALESCE(
json_agg(
json_build_object(
'id', a.id,
'fileName', a.file_name,
'filePath', a.file_path,
'attachmentType', a.attachment_type,
'createdAt', a.created_at
)
ORDER BY a.attachment_type, a.created_at DESC
),
'[]'::json
)
FROM tech_vendor_attachments a
WHERE a.vendor_id = tech_vendors.id)
as "attachments",
(SELECT COUNT(*)
FROM tech_vendor_attachments a
WHERE a.vendor_id = tech_vendors.id)
as "attachment_count",
(SELECT COUNT(*)
FROM vendor_contacts c
WHERE c.vendor_id = tech_vendors.id)
as "contact_count",
(SELECT COUNT(*)
FROM tech_vendor_possible_items i
WHERE i.vendor_id = tech_vendors.id)
as "item_count" from "tech_vendors");
|