From 33194e2a261e2654bed0509aa9b5f3498dd3ea55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EC=A0=95=ED=9B=84=28AHN=20JEONGHU=29?= Date: Tue, 7 Apr 2026 11:30:28 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[FEATURE]=20=EC=8B=9C=EB=93=9C=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=A0=95=EB=A6=AC=20=E2=80=94=20=ED=97=88?= =?UTF-8?q?=EB=B8=8C=203=EA=B0=9C(=EC=84=9C=EC=9A=B8/=EA=B2=BD=EA=B8=B0/?= =?UTF-8?q?=EC=A0=9C=EC=A3=BC)=EB=A1=9C=20=EC=B6=95=EC=86=8C=20=EB=B0=8F?= =?UTF-8?q?=20=EC=B4=88=EA=B8=B0=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DataInitializer: 허브를 서울/경기/제주 3개로 축소, 허브 UUID 고정, 매니저 UUID 각각 다르게 설정 - DataInitializer: 허브 경로를 3개 허브 간 양방향 6개로 재구성 - 02-init-data.sql: MASTER, HUB_MANAGER(3), COMPANY_MANAGER(5), SHIPMENT_MANAGER(5) 유저 추가 - 02-init-data.sql: p_company 5개, p_shipment_manager 5개 초기 데이터 추가 Co-Authored-By: Claude Sonnet 4.6 --- docker/postgres/init/02-init-data.sql | 47 +++++ .../initializer/DataInitializer.java | 182 ++++-------------- 2 files changed, 89 insertions(+), 140 deletions(-) create mode 100644 docker/postgres/init/02-init-data.sql diff --git a/docker/postgres/init/02-init-data.sql b/docker/postgres/init/02-init-data.sql new file mode 100644 index 0000000..8d4cb1e --- /dev/null +++ b/docker/postgres/init/02-init-data.sql @@ -0,0 +1,47 @@ +-- ============================================= +-- p_user 초기 데이터 +-- ============================================= +INSERT INTO p_user (id, username, name, slack_id, role, hub_id, company_id, status, created_at, created_by, updated_at, updated_by) VALUES +-- MASTER +('0c6a758d-afe4-47a4-9f09-df82c6e99653', 'master', 'master', 'master-admin', 'MASTER', NULL, NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +-- HUB_MANAGER (hub UUID는 DataInitializer에서 고정값으로 설정) +('20000000-0000-0000-0000-000000000001', 'hub-manager-seoul', '서울 허브 관리자', 'hub-seoul', 'HUB_MANAGER', '10000000-0000-0000-0000-000000000001', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('20000000-0000-0000-0000-000000000002', 'hub-manager-gyeonggi', '경기 허브 관리자', 'hub-gyeonggi', 'HUB_MANAGER', '10000000-0000-0000-0000-000000000002', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('20000000-0000-0000-0000-000000000003', 'hub-manager-jeju', '제주 허브 관리자', 'hub-jeju', 'HUB_MANAGER', '10000000-0000-0000-0000-000000000003', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +-- COMPANY_MANAGER (company UUID는 p_company INSERT와 동기화) +('40000000-0000-0000-0000-000000000001', 'company-manager-1', '서울 공급업체 담당자', 'company-seoul-supplier', 'COMPANY_MANAGER', '10000000-0000-0000-0000-000000000001', '30000000-0000-0000-0000-000000000001', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('40000000-0000-0000-0000-000000000002', 'company-manager-2', '서울 수령업체 담당자', 'company-seoul-receiver', 'COMPANY_MANAGER', '10000000-0000-0000-0000-000000000001', '30000000-0000-0000-0000-000000000002', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('40000000-0000-0000-0000-000000000003', 'company-manager-3', '경기 공급업체 담당자', 'company-gyeonggi-supplier','COMPANY_MANAGER', '10000000-0000-0000-0000-000000000002', '30000000-0000-0000-0000-000000000003', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('40000000-0000-0000-0000-000000000004', 'company-manager-4', '경기 수령업체 담당자', 'company-gyeonggi-receiver','COMPANY_MANAGER', '10000000-0000-0000-0000-000000000002', '30000000-0000-0000-0000-000000000004', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('40000000-0000-0000-0000-000000000005', 'company-manager-5', '제주 공급업체 담당자', 'company-jeju-supplier', 'COMPANY_MANAGER', '10000000-0000-0000-0000-000000000003', '30000000-0000-0000-0000-000000000005', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +-- SHIPMENT_MANAGER +('50000000-0000-0000-0000-000000000001', 'shipment-manager-hub-1', '허브 배송 담당자 1', 'shipment-hub-1', 'SHIPMENT_MANAGER', NULL, NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('50000000-0000-0000-0000-000000000002', 'shipment-manager-hub-2', '허브 배송 담당자 2', 'shipment-hub-2', 'SHIPMENT_MANAGER', NULL, NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('50000000-0000-0000-0000-000000000003', 'shipment-manager-company-1', '서울 배송 담당자', 'shipment-company-1', 'SHIPMENT_MANAGER', '10000000-0000-0000-0000-000000000001', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('50000000-0000-0000-0000-000000000004', 'shipment-manager-company-2', '경기 배송 담당자', 'shipment-company-2', 'SHIPMENT_MANAGER', '10000000-0000-0000-0000-000000000002', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('50000000-0000-0000-0000-000000000005', 'shipment-manager-company-3', '제주 배송 담당자', 'shipment-company-3', 'SHIPMENT_MANAGER', '10000000-0000-0000-0000-000000000003', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'); + +-- ============================================= +-- p_shipment_manager 초기 데이터 +-- ============================================= +INSERT INTO p_shipment_manager (id, user_id, name, hub_id, slack_id, type, shipment_sequence, created_at, created_by, updated_at, updated_by) VALUES +-- HUB 타입: hub_id 없음 +('60000000-0000-0000-0000-000000000001', '50000000-0000-0000-0000-000000000001', '허브 배송 담당자 1', NULL, 'shipment-hub-1', 'HUB', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('60000000-0000-0000-0000-000000000002', '50000000-0000-0000-0000-000000000002', '허브 배송 담당자 2', NULL, 'shipment-hub-2', 'HUB', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +-- COMPANY 타입: 허브별 담당자 +('60000000-0000-0000-0000-000000000003', '50000000-0000-0000-0000-000000000003', '서울 배송 담당자', '10000000-0000-0000-0000-000000000001', 'shipment-company-1', 'COMPANY', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('60000000-0000-0000-0000-000000000004', '50000000-0000-0000-0000-000000000004', '경기 배송 담당자', '10000000-0000-0000-0000-000000000002', 'shipment-company-2', 'COMPANY', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('60000000-0000-0000-0000-000000000005', '50000000-0000-0000-0000-000000000005', '제주 배송 담당자', '10000000-0000-0000-0000-000000000003', 'shipment-company-3', 'COMPANY', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'); + +-- ============================================= +-- p_company 초기 데이터 +-- ============================================= +INSERT INTO p_company (id, name, type, hub_id, address, manager_id, manager_name, created_at, created_by, updated_at, updated_by) VALUES +-- 서울 허브 소속 +('30000000-0000-0000-0000-000000000001', '서울 공급업체', 'Supplier', '10000000-0000-0000-0000-000000000001', '서울특별시 강남구 테헤란로 100', '40000000-0000-0000-0000-000000000001', '서울 공급업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('30000000-0000-0000-0000-000000000002', '서울 수령업체', 'Receiver', '10000000-0000-0000-0000-000000000001', '서울특별시 송파구 올림픽로 300', '40000000-0000-0000-0000-000000000002', '서울 수령업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +-- 경기 허브 소속 +('30000000-0000-0000-0000-000000000003', '경기 공급업체', 'Supplier', '10000000-0000-0000-0000-000000000002', '경기도 성남시 분당구 판교역로 166', '40000000-0000-0000-0000-000000000003', '경기 공급업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +('30000000-0000-0000-0000-000000000004', '경기 수령업체', 'Receiver', '10000000-0000-0000-0000-000000000002', '경기도 수원시 팔달구 인계로 178', '40000000-0000-0000-0000-000000000004', '경기 수령업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), +-- 제주 허브 소속 +('30000000-0000-0000-0000-000000000005', '제주 공급업체', 'Supplier', '10000000-0000-0000-0000-000000000003', '제주특별자치도 제주시 노형로 100', '40000000-0000-0000-0000-000000000005', '제주 공급업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'); diff --git a/hub-service/src/main/java/com/shipflow/hubservice/infrastructure/initializer/DataInitializer.java b/hub-service/src/main/java/com/shipflow/hubservice/infrastructure/initializer/DataInitializer.java index 6185408..c10d220 100644 --- a/hub-service/src/main/java/com/shipflow/hubservice/infrastructure/initializer/DataInitializer.java +++ b/hub-service/src/main/java/com/shipflow/hubservice/infrastructure/initializer/DataInitializer.java @@ -2,9 +2,7 @@ import java.math.BigDecimal; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; -import java.util.Set; import java.util.UUID; import org.springframework.boot.ApplicationArguments; @@ -38,144 +36,41 @@ public void run(ApplicationArguments args) { hubRouteRepository.saveAll(routes); } - private List createHubs() { - UUID managerId = UUID.fromString("00000000-0000-0000-0000-000000000001"); + static final UUID SEOUL_HUB_ID = UUID.fromString("10000000-0000-0000-0000-000000000001"); + static final UUID GYEONGGI_HUB_ID = UUID.fromString("10000000-0000-0000-0000-000000000002"); + static final UUID JEJU_HUB_ID = UUID.fromString("10000000-0000-0000-0000-000000000003"); + + static final UUID SEOUL_MANAGER_ID = UUID.fromString("20000000-0000-0000-0000-000000000001"); + static final UUID GYEONGGI_MANAGER_ID = UUID.fromString("20000000-0000-0000-0000-000000000002"); + static final UUID JEJU_MANAGER_ID = UUID.fromString("20000000-0000-0000-0000-000000000003"); + private List createHubs() { return List.of( Hub.builder() + .id(SEOUL_HUB_ID) .name("서울특별시 센터") .address("서울특별시 강남구 테헤란로 212") .latitude(new BigDecimal("37.4981452")) .longitude(new BigDecimal("127.0276368")) - .managerId(managerId) + .managerId(SEOUL_MANAGER_ID) .managerName("서울 허브 관리자") .build(), Hub.builder() + .id(GYEONGGI_HUB_ID) .name("경기도 센터") .address("경기도 수원시 팔달구 중부대로 341") .latitude(new BigDecimal("37.2636")) .longitude(new BigDecimal("127.0286")) - .managerId(managerId) + .managerId(GYEONGGI_MANAGER_ID) .managerName("경기 허브 관리자") .build(), Hub.builder() - .name("인천광역시 센터") - .address("인천광역시 남동구 인주대로 590") - .latitude(new BigDecimal("37.4563")) - .longitude(new BigDecimal("126.7052")) - .managerId(managerId) - .managerName("인천 허브 관리자") - .build(), - Hub.builder() - .name("강원특별자치도 센터") - .address("강원특별자치도 춘천시 중앙로 1") - .latitude(new BigDecimal("37.8813")) - .longitude(new BigDecimal("127.7298")) - .managerId(managerId) - .managerName("강원 허브 관리자") - .build(), - Hub.builder() - .name("충청북도 센터") - .address("충청북도 청주시 상당구 상당로 82") - .latitude(new BigDecimal("36.6424")) - .longitude(new BigDecimal("127.4890")) - .managerId(managerId) - .managerName("충북 허브 관리자") - .build(), - Hub.builder() - .name("충청남도 센터") - .address("충청남도 홍성군 홍북읍 충남대로 21") - .latitude(new BigDecimal("36.6588")) - .longitude(new BigDecimal("126.6728")) - .managerId(managerId) - .managerName("충남 허브 관리자") - .build(), - Hub.builder() - .name("대전광역시 센터") - .address("대전광역시 서구 둔산대로 100") - .latitude(new BigDecimal("36.3504")) - .longitude(new BigDecimal("127.3845")) - .managerId(managerId) - .managerName("대전 허브 관리자") - .build(), - Hub.builder() - .name("세종특별자치시 센터") - .address("세종특별자치시 한누리대로 2130") - .latitude(new BigDecimal("36.4800")) - .longitude(new BigDecimal("127.2890")) - .managerId(managerId) - .managerName("세종 허브 관리자") - .build(), - Hub.builder() - .name("전북특별자치도 센터") - .address("전북특별자치도 전주시 완산구 효자로 225") - .latitude(new BigDecimal("35.8242")) - .longitude(new BigDecimal("127.1480")) - .managerId(managerId) - .managerName("전북 허브 관리자") - .build(), - Hub.builder() - .name("전라남도 센터") - .address("전라남도 무안군 삼향읍 오룡길 1") - .latitude(new BigDecimal("34.8679")) - .longitude(new BigDecimal("126.9910")) - .managerId(managerId) - .managerName("전남 허브 관리자") - .build(), - Hub.builder() - .name("광주광역시 센터") - .address("광주광역시 서구 내방로 111") - .latitude(new BigDecimal("35.1595")) - .longitude(new BigDecimal("126.8526")) - .managerId(managerId) - .managerName("광주 허브 관리자") - .build(), - Hub.builder() - .name("경상북도 센터") - .address("경상북도 안동시 풍천면 도청대로 455") - .latitude(new BigDecimal("36.5760")) - .longitude(new BigDecimal("128.5055")) - .managerId(managerId) - .managerName("경북 허브 관리자") - .build(), - Hub.builder() - .name("경상남도 센터") - .address("경상남도 창원시 의창구 중앙대로 300") - .latitude(new BigDecimal("35.4606")) - .longitude(new BigDecimal("128.2132")) - .managerId(managerId) - .managerName("경남 허브 관리자") - .build(), - Hub.builder() - .name("대구광역시 센터") - .address("대구광역시 북구 옥산로 1") - .latitude(new BigDecimal("35.8714")) - .longitude(new BigDecimal("128.6014")) - .managerId(managerId) - .managerName("대구 허브 관리자") - .build(), - Hub.builder() - .name("울산광역시 센터") - .address("울산광역시 남구 중앙로 201") - .latitude(new BigDecimal("35.5384")) - .longitude(new BigDecimal("129.3114")) - .managerId(managerId) - .managerName("울산 허브 관리자") - .build(), - Hub.builder() - .name("부산광역시 센터") - .address("부산광역시 연제구 중앙대로 1001") - .latitude(new BigDecimal("35.1796")) - .longitude(new BigDecimal("129.0756")) - .managerId(managerId) - .managerName("부산 허브 관리자") - .build(), - Hub.builder() + .id(JEJU_HUB_ID) .name("제주특별자치도 센터") .address("제주특별자치도 제주시 문연로 6") .latitude(new BigDecimal("33.4996")) .longitude(new BigDecimal("126.5312")) - .managerId(managerId) + .managerId(JEJU_MANAGER_ID) .managerName("제주 허브 관리자") .build() ); @@ -186,40 +81,47 @@ private List createRoutes(List hubs) { Hub seoul = hubs.get(0); Hub gyeonggi = hubs.get(1); - Hub incheon = hubs.get(2); + Hub jeju = hubs.get(2); + // 서울 ↔ 경기 routes.add(HubRoute.builder() .departureHub(seoul) .arrivalHub(gyeonggi) .distance(new BigDecimal("30.00")) .duration(45) .build()); + routes.add(HubRoute.builder() + .departureHub(gyeonggi) + .arrivalHub(seoul) + .distance(new BigDecimal("30.00")) + .duration(45) + .build()); + // 서울 ↔ 제주 routes.add(HubRoute.builder() .departureHub(seoul) - .arrivalHub(incheon) - .distance(new BigDecimal("40.00")) - .duration(60) + .arrivalHub(jeju) + .distance(new BigDecimal("465.00")) + .duration(480) + .build()); + routes.add(HubRoute.builder() + .departureHub(jeju) + .arrivalHub(seoul) + .distance(new BigDecimal("465.00")) + .duration(480) .build()); + // 경기 ↔ 제주 routes.add(HubRoute.builder() .departureHub(gyeonggi) - .arrivalHub(incheon) - .distance(new BigDecimal("25.00")) - .duration(35) + .arrivalHub(jeju) + .distance(new BigDecimal("480.00")) + .duration(500) + .build()); + routes.add(HubRoute.builder() + .departureHub(jeju) + .arrivalHub(gyeonggi) + .distance(new BigDecimal("480.00")) + .duration(500) .build()); - - Set added = new HashSet<>(Set.of("0-1", "0-2", "1-2")); - for (int i = 0; i < hubs.size(); i++) { - for (int j = 0; j < hubs.size(); j++) { - if (i != j && !added.contains(i + "-" + j)) { - routes.add(HubRoute.builder() - .departureHub(hubs.get(i)) - .arrivalHub(hubs.get(j)) - .distance(BigDecimal.ONE) - .duration(1) - .build()); - } - } - } return routes; } From fc4b854e38ecf3701499461e640360299b436cf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EC=A0=95=ED=9B=84=28AHN=20JEONGHU=29?= Date: Tue, 7 Apr 2026 12:01:54 +0900 Subject: [PATCH 2/2] =?UTF-8?q?hotfix:=20=20p=5F=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=EC=9D=80=20jpa=20=EA=B5=AC=EC=84=B1=20=EC=8B=9C?= =?UTF-8?q?=EC=A0=90=EC=97=90=EC=84=9C=20=EC=83=9D=EC=84=B1=EB=90=98?= =?UTF-8?q?=EB=82=98=20=EC=B4=88=EA=B8=B0=20=EB=8D=B0=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=EB=8A=94=20postsql=20=EA=B5=AC=EC=84=B1=EC=8B=9C=EC=97=90=20?= =?UTF-8?q?=EC=82=BD=EC=9E=85=EB=90=98=EC=96=B4=20=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=EC=9D=84=20=EC=B0=BE=EC=9D=84=20=EC=88=98=20=EC=97=86?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=EB=B0=98=EC=98=81.=20sql?= =?UTF-8?q?=EC=9D=80=20=EC=A7=81=EC=A0=91=20=EC=8B=A4=ED=96=89=ED=95=B4?= =?UTF-8?q?=EC=95=BC=ED=95=A8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - --- docker/postgres/init/02-init-data.sql | 47 --------------------------- 1 file changed, 47 deletions(-) delete mode 100644 docker/postgres/init/02-init-data.sql diff --git a/docker/postgres/init/02-init-data.sql b/docker/postgres/init/02-init-data.sql deleted file mode 100644 index 8d4cb1e..0000000 --- a/docker/postgres/init/02-init-data.sql +++ /dev/null @@ -1,47 +0,0 @@ --- ============================================= --- p_user 초기 데이터 --- ============================================= -INSERT INTO p_user (id, username, name, slack_id, role, hub_id, company_id, status, created_at, created_by, updated_at, updated_by) VALUES --- MASTER -('0c6a758d-afe4-47a4-9f09-df82c6e99653', 'master', 'master', 'master-admin', 'MASTER', NULL, NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), --- HUB_MANAGER (hub UUID는 DataInitializer에서 고정값으로 설정) -('20000000-0000-0000-0000-000000000001', 'hub-manager-seoul', '서울 허브 관리자', 'hub-seoul', 'HUB_MANAGER', '10000000-0000-0000-0000-000000000001', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('20000000-0000-0000-0000-000000000002', 'hub-manager-gyeonggi', '경기 허브 관리자', 'hub-gyeonggi', 'HUB_MANAGER', '10000000-0000-0000-0000-000000000002', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('20000000-0000-0000-0000-000000000003', 'hub-manager-jeju', '제주 허브 관리자', 'hub-jeju', 'HUB_MANAGER', '10000000-0000-0000-0000-000000000003', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), --- COMPANY_MANAGER (company UUID는 p_company INSERT와 동기화) -('40000000-0000-0000-0000-000000000001', 'company-manager-1', '서울 공급업체 담당자', 'company-seoul-supplier', 'COMPANY_MANAGER', '10000000-0000-0000-0000-000000000001', '30000000-0000-0000-0000-000000000001', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('40000000-0000-0000-0000-000000000002', 'company-manager-2', '서울 수령업체 담당자', 'company-seoul-receiver', 'COMPANY_MANAGER', '10000000-0000-0000-0000-000000000001', '30000000-0000-0000-0000-000000000002', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('40000000-0000-0000-0000-000000000003', 'company-manager-3', '경기 공급업체 담당자', 'company-gyeonggi-supplier','COMPANY_MANAGER', '10000000-0000-0000-0000-000000000002', '30000000-0000-0000-0000-000000000003', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('40000000-0000-0000-0000-000000000004', 'company-manager-4', '경기 수령업체 담당자', 'company-gyeonggi-receiver','COMPANY_MANAGER', '10000000-0000-0000-0000-000000000002', '30000000-0000-0000-0000-000000000004', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('40000000-0000-0000-0000-000000000005', 'company-manager-5', '제주 공급업체 담당자', 'company-jeju-supplier', 'COMPANY_MANAGER', '10000000-0000-0000-0000-000000000003', '30000000-0000-0000-0000-000000000005', 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), --- SHIPMENT_MANAGER -('50000000-0000-0000-0000-000000000001', 'shipment-manager-hub-1', '허브 배송 담당자 1', 'shipment-hub-1', 'SHIPMENT_MANAGER', NULL, NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('50000000-0000-0000-0000-000000000002', 'shipment-manager-hub-2', '허브 배송 담당자 2', 'shipment-hub-2', 'SHIPMENT_MANAGER', NULL, NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('50000000-0000-0000-0000-000000000003', 'shipment-manager-company-1', '서울 배송 담당자', 'shipment-company-1', 'SHIPMENT_MANAGER', '10000000-0000-0000-0000-000000000001', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('50000000-0000-0000-0000-000000000004', 'shipment-manager-company-2', '경기 배송 담당자', 'shipment-company-2', 'SHIPMENT_MANAGER', '10000000-0000-0000-0000-000000000002', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('50000000-0000-0000-0000-000000000005', 'shipment-manager-company-3', '제주 배송 담당자', 'shipment-company-3', 'SHIPMENT_MANAGER', '10000000-0000-0000-0000-000000000003', NULL, 'APPROVED', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'); - --- ============================================= --- p_shipment_manager 초기 데이터 --- ============================================= -INSERT INTO p_shipment_manager (id, user_id, name, hub_id, slack_id, type, shipment_sequence, created_at, created_by, updated_at, updated_by) VALUES --- HUB 타입: hub_id 없음 -('60000000-0000-0000-0000-000000000001', '50000000-0000-0000-0000-000000000001', '허브 배송 담당자 1', NULL, 'shipment-hub-1', 'HUB', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('60000000-0000-0000-0000-000000000002', '50000000-0000-0000-0000-000000000002', '허브 배송 담당자 2', NULL, 'shipment-hub-2', 'HUB', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), --- COMPANY 타입: 허브별 담당자 -('60000000-0000-0000-0000-000000000003', '50000000-0000-0000-0000-000000000003', '서울 배송 담당자', '10000000-0000-0000-0000-000000000001', 'shipment-company-1', 'COMPANY', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('60000000-0000-0000-0000-000000000004', '50000000-0000-0000-0000-000000000004', '경기 배송 담당자', '10000000-0000-0000-0000-000000000002', 'shipment-company-2', 'COMPANY', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('60000000-0000-0000-0000-000000000005', '50000000-0000-0000-0000-000000000005', '제주 배송 담당자', '10000000-0000-0000-0000-000000000003', 'shipment-company-3', 'COMPANY', 0, NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'); - --- ============================================= --- p_company 초기 데이터 --- ============================================= -INSERT INTO p_company (id, name, type, hub_id, address, manager_id, manager_name, created_at, created_by, updated_at, updated_by) VALUES --- 서울 허브 소속 -('30000000-0000-0000-0000-000000000001', '서울 공급업체', 'Supplier', '10000000-0000-0000-0000-000000000001', '서울특별시 강남구 테헤란로 100', '40000000-0000-0000-0000-000000000001', '서울 공급업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('30000000-0000-0000-0000-000000000002', '서울 수령업체', 'Receiver', '10000000-0000-0000-0000-000000000001', '서울특별시 송파구 올림픽로 300', '40000000-0000-0000-0000-000000000002', '서울 수령업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), --- 경기 허브 소속 -('30000000-0000-0000-0000-000000000003', '경기 공급업체', 'Supplier', '10000000-0000-0000-0000-000000000002', '경기도 성남시 분당구 판교역로 166', '40000000-0000-0000-0000-000000000003', '경기 공급업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), -('30000000-0000-0000-0000-000000000004', '경기 수령업체', 'Receiver', '10000000-0000-0000-0000-000000000002', '경기도 수원시 팔달구 인계로 178', '40000000-0000-0000-0000-000000000004', '경기 수령업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653'), --- 제주 허브 소속 -('30000000-0000-0000-0000-000000000005', '제주 공급업체', 'Supplier', '10000000-0000-0000-0000-000000000003', '제주특별자치도 제주시 노형로 100', '40000000-0000-0000-0000-000000000005', '제주 공급업체 담당자', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653', NOW(), '0c6a758d-afe4-47a4-9f09-df82c6e99653');