From 8d301af4e39b5c03bdc0e6e1ceecfc91ac3c56cd Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Mon, 10 Nov 2025 16:29:03 +0700 Subject: [PATCH] change id into code for device and material order item --- .../migrations/20251110092729.sql | 4 ++ cmd/main-migration/migrations/atlas.sum | 61 ++++++++++--------- .../main-entities/device-order-item/dto.go | 16 ++--- .../main-entities/device-order-item/entity.go | 3 +- .../main-entities/material-order-item/dto.go | 8 +-- .../material-order-item/entity.go | 3 +- .../main-use-case/device-order-item/helper.go | 2 +- .../material-order-item/helper.go | 2 +- 8 files changed, 51 insertions(+), 48 deletions(-) create mode 100644 cmd/main-migration/migrations/20251110092729.sql diff --git a/cmd/main-migration/migrations/20251110092729.sql b/cmd/main-migration/migrations/20251110092729.sql new file mode 100644 index 00000000..7f4702ab --- /dev/null +++ b/cmd/main-migration/migrations/20251110092729.sql @@ -0,0 +1,4 @@ +-- Modify "DeviceOrderItem" table +ALTER TABLE "public"."DeviceOrderItem" DROP CONSTRAINT "fk_DeviceOrderItem_Device", DROP COLUMN "Device_Id", ALTER COLUMN "Device_Code" TYPE character varying(10), ADD CONSTRAINT "fk_DeviceOrderItem_Device" FOREIGN KEY ("Device_Code") REFERENCES "public"."Device" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION; +-- Modify "MaterialOrderItem" table +ALTER TABLE "public"."MaterialOrderItem" DROP CONSTRAINT "fk_MaterialOrderItem_Material", DROP COLUMN "Material_Id", ALTER COLUMN "Material_Code" TYPE character varying(10), ADD CONSTRAINT "fk_MaterialOrderItem_Material" FOREIGN KEY ("Material_Code") REFERENCES "public"."Material" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION; diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index 3e5986fd..48aaaef5 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:t/RiG4+9F6uLvgSXMDmBBXDULzInvre2pxMfKdXmaAY= +h1:ib+C98Dbbvu+hHl5iZy4QQGSDIllnGFtgsOJOC226jw= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -75,32 +75,33 @@ h1:t/RiG4+9F6uLvgSXMDmBBXDULzInvre2pxMfKdXmaAY= 20251106040137.sql h1:ppcqkVoT0o9jZcjI/TN7LuaPxXhJQhnIXEJtloP/46o= 20251106041333.sql h1:2JkxyelQ/EeB+boL5bfpnzefw32ttEGKvKchtQjWmAU= 20251106042006.sql h1:ruppYa1kAJQUU3ufQBbKGMcXrGbGJJiRPclT+dNc/YQ= -20251106050412.sql h1:MiEMJ1HCFYnalKuq3Z38xJeogfBAMqsTv2sG4EF8dDw= -20251106063418.sql h1:y3veDJPjKekOWLCZek/LgQwXPRhZtOppTfUXiqoL95s= -20251106071906.sql h1:/TUZA3XpMY23qEJXdkTwlzrNMvSSl6JJniPcgAttBaw= -20251106073157.sql h1:78txeibJ602DMD7huD618ZSMt6phSRzDNPTlo0PGyrc= -20251106074218.sql h1:8Xz7WywrtUnSxOHhlal53gG9rE7r86LFUt5zBFe/mIs= -20251106081846.sql h1:jp91Bf5bxGXMiUB1VIuN6y768vb2iWwow44WfCE5J5k= -20251106082844.sql h1:RHYzRO4G1fSWwf+xc/3QezZ/Iil67cZPIgNpNz3TNhQ= -20251106090021.sql h1:dFDk6mq+zjbYWmfWIrHf9DiKvvoXHjrr0++zssMTWP8= -20251106144745.sql h1:aHcr23iBFqCHer5D/SsPMXBCLjGqUYvWYfRU8jSJgIw= -20251107012049.sql h1:hu/7NHhnAkT4xK0RNtqmMDdH1Bo5EZbl7itDRjiCT+g= -20251107064812.sql h1:sfCXDQYnMf0ddrQ9oYljWJLLSt9NJjJV6o8VS3p7aZE= -20251107064937.sql h1:DlYGJ9LZFwZyR7jBP5zaGB128aIc4HAixBKPYCz9EkY= -20251107071420.sql h1:ynCdZAd2utLl+FhtWZwtahNXgIVOvuk3s/rOq7lfXA4= -20251107074318.sql h1:WE9cPhibWtZ0dbu1VEGirTeY6ijFYGMNhHdBtM32kOc= -20251107075050.sql h1:8tvneruqdynDOaJK1+0z4CH7YXZStZpGdqwIeOMLik4= -20251107080604.sql h1:8c4jd4Tql7tcdhbI9NS0tgvN+ADu9FnCf8wMUbmW7A0= -20251107081830.sql h1:SAAe3lmsm9vGXuSEsDdl7ad0EAxP5CMmFRDEgp9M7yY= -20251107091033.sql h1:JLdX/u7GUdBfjrPrMSNAqc8HtSoj0YA9iW9Vc6FJZdw= -20251107091209.sql h1:CzhYtwAwT+GHrbqcagnJE+v3mbl/rObf1IJaLCKlzrs= -20251107091541.sql h1:+3ZyWJTftDY2JeWThXuIxGWpUBnyMPyOyY4jBjdWYJI= -20251110012217.sql h1:f4Z8TuGc+XMSJ+Ekn4/PeHRE2FlHWkc5gKPJB0hAX7c= -20251110012306.sql h1:ENPyI6Kjdk6qKJQb0yJ6MCTDPAmO1WD/uhKuCSl+jYo= -20251110052049.sql h1:OrQ0acnyoQLKnTitZfnBcVr5jDslF59OFLaqT7SpdVs= -20251110062042.sql h1:9KwldQt0NpVPR86L0T4hlkfHAGau+7CiZYgu5rF+yhg= -20251110063202.sql h1:A117DuZmZ6U0jWHA3DISnr+yvBjKIr1ObrUr047YezQ= -20251110063633.sql h1:qTiC0F19JnhUIXF4LGJQ21jEV6kKGyhTr1x2kimFqPQ= -20251110085551.sql h1:HZcJM0RSC6HBaUSjKBE8MgDG8Vn9f3LmwA/OnT9Cp7I= -20251110091516.sql h1:W3AQhQLgirEWuCObbLl+Prdrbq6k6EEY1xcoWsmbog4= -20251110091948.sql h1:3tsITMrZr/T+L4wqUMz8sHS229jCJl4T0Nu3dMccxH8= +20251106050412.sql h1:1002KYtHd8AwrQTMewbs/PPHDylHDghigE/3S7PVdMA= +20251106063418.sql h1:jPW/gBnbFl4RO39lQ0ZMDtYA6xbhyD6CgQupT50HmaY= +20251106071906.sql h1:leYGKxR3EQn794aOehf0sd/ZPmOnvBMZPy5/anGmRB4= +20251106073157.sql h1:KASMzjjjk5UB7Zj8lCRtM1utc4ZnDjlnpZbtTe3vONE= +20251106074218.sql h1:Z5q5deOvLaZDPhiVTN9st3/s56RepBa2YOyrMXBdj4A= +20251106081846.sql h1:P+VsWwhGt60adDIZuE/Aa38JVp/yX1rnsdpXpxASodw= +20251106082844.sql h1:Dmi5A8i9frQZvdXYPwc7f8CisZtBH8liSXq1rI6z1iM= +20251106090021.sql h1:4JwdKgO8T46YhyWVJUxpRIwudBDlG8QN1brSOYmgQ20= +20251106144745.sql h1:nqnQCzGrVJaq8ilOEOGXeRUL1dolj+OPWKuP8A92FRA= +20251107012049.sql h1:Pff4UqltGS3clSlGr0qq8CQM56L29wyxY0FC/N/YAhU= +20251107064812.sql h1:GB9a0ZfMYTIoGNmKUG+XcYUsTnRMFfT4/dAD71uCPc4= +20251107064937.sql h1:IC5pw1Ifj30hiE6dr5NMHXaSHoQI+vRd40N5ABgBHRI= +20251107071420.sql h1:9NO3iyLEXEtWa2kSRjM/8LyzuVIk6pdFL2SuheWjB08= +20251107074318.sql h1:7fHbSRrdjOmHh/xwnjCLwoiB5cW5zeH+uxLV0vZbkIA= +20251107075050.sql h1:np+3uTOnU9QNtK7Knaw8eRMhkyB9AwrtSNHphOBxbHY= +20251107080604.sql h1:cXDBLPJDVWLTG6yEJqkJsOQ7p7VYxLM2SY+mwO8qSHo= +20251107081830.sql h1:/S7OQZo4ZnK80t28g/JyiOTZtmWG/dP5Wg2zXNMQ/iE= +20251107091033.sql h1:/cbkF1nO/IjNSIfDJJx456KJtQ9rWFXOBFAkR/M2xiE= +20251107091209.sql h1:jrLQOUeV8ji2fg0pnEcs1bw4ANUxzTSMXC/rrHLIY+M= +20251107091541.sql h1:6UqbhQQRmzA2+eKu5lIvkwOkk+lH70QLZC8Pjpjcq68= +20251110012217.sql h1:C9HpX0iyHzKjyNv/5DSAn2MCHj6MX4p5UQ/NrY7QD0w= +20251110012306.sql h1:J54yb27d30LBbYp9n1P66gFVRlxPguKu0kxmWIBBG8g= +20251110052049.sql h1:232T2x8xTczJl9nk4jxJpZXhoOGYthhxjJ7nK8Jd8vg= +20251110062042.sql h1:WnfVUXrzYoj8qdkkjO9/JQQ8agGd4GfSHQdMjo7LDAg= +20251110063202.sql h1:hSzGfwVMWa6q3vwIQZUkxKgBNCzHjB+6GKy54zfV+oQ= +20251110063633.sql h1:/VpofIAqNS1CnazEnpW/+evbzn9Kew3xDW48r57M+Xg= +20251110085551.sql h1:pAVoSz6QO8bwYqn9Y7f2Bgdvh8TVNMiv/JqJgwSI+ck= +20251110091516.sql h1:Ab7z5iz7MgeSKxkvXGQSTZfO2nRO6lu1c/5SwO3aeCs= +20251110091948.sql h1:cM8dIy7OHIxws4fcpJjHhY61+4Q1aNCXpyKh9BbSOB8= +20251110092729.sql h1:AAg9gXlwOWxOS5L6EryOUNrKkFna7i0oiKdiu3G1Hyg= diff --git a/internal/domain/main-entities/device-order-item/dto.go b/internal/domain/main-entities/device-order-item/dto.go index e89d5fad..afa08ed8 100644 --- a/internal/domain/main-entities/device-order-item/dto.go +++ b/internal/domain/main-entities/device-order-item/dto.go @@ -7,9 +7,9 @@ import ( ) type CreateDto struct { - DeviceOrder_Id *uint `json:"deviceOrder_id"` - Device_Id *uint `json:"device_id"` - Count uint8 `json:"count"` + DeviceOrder_Id *uint `json:"deviceOrder_id"` + Device_Code *string `json:"device_code"` + Count uint8 `json:"count"` } type ReadListDto struct { @@ -19,9 +19,9 @@ type ReadListDto struct { } type FilterDto struct { - DeviceOrder_Id *uint `json:"deviceOrder-id"` - Device_Id *uint `json:"device-id"` - Count uint8 `json:"count"` + DeviceOrder_Id *uint `json:"deviceOrder-id"` + Device_Code *string `json:"device-code"` + Count uint8 `json:"count"` } type ReadDetailDto struct { Id uint16 `json:"id"` @@ -46,7 +46,7 @@ type ResponseDto struct { ecore.Main DeviceOrder_Id *uint `json:"deviceOrder_id"` DeviceOrder *edo.DeviceOrder `json:"deviceOrder,omitempty"` - Device_Id *uint `json:"device_id"` + Device_Code *string `json:"device_code"` Device *ed.Device `json:"device,omitempty"` Count uint8 `json:"count"` } @@ -55,7 +55,7 @@ func (d DeviceOrderItem) ToResponse() ResponseDto { resp := ResponseDto{ DeviceOrder_Id: d.DeviceOrder_Id, DeviceOrder: d.DeviceOrder, - Device_Id: d.Device_Id, + Device_Code: d.Device_Code, Device: d.Device, Count: d.Count, } diff --git a/internal/domain/main-entities/device-order-item/entity.go b/internal/domain/main-entities/device-order-item/entity.go index 35ed1273..27197125 100644 --- a/internal/domain/main-entities/device-order-item/entity.go +++ b/internal/domain/main-entities/device-order-item/entity.go @@ -10,8 +10,7 @@ type DeviceOrderItem struct { ecore.Main // adjust this according to the needs DeviceOrder_Id *uint `json:"deviceOrder_id"` DeviceOrder *edo.DeviceOrder `json:"deviceOrder,omitempty" gorm:"foreignKey:DeviceOrder_Id;references:Id"` - Device_Id *uint `json:"device_id"` Device_Code *string `json:"device_code"` - Device *ed.Device `json:"device,omitempty" gorm:"foreignKey:Device_Id;references:Id"` + Device *ed.Device `json:"device,omitempty" gorm:"foreignKey:Device_Code;references:Code"` Count uint8 `json:"count"` } diff --git a/internal/domain/main-entities/material-order-item/dto.go b/internal/domain/main-entities/material-order-item/dto.go index b76792bf..c8fd363d 100644 --- a/internal/domain/main-entities/material-order-item/dto.go +++ b/internal/domain/main-entities/material-order-item/dto.go @@ -8,7 +8,7 @@ import ( type CreateDto struct { MaterialOrder_Id *uint `json:"materialOrder_id"` - Material_Id *uint `json:"material_id"` + Material_Code *string `json:"material_code"` Count *uint16 `json:"count"` } @@ -20,7 +20,7 @@ type ReadListDto struct { type FilterDto struct { MaterialOrder_Id *uint `json:"materialOrder-id"` - Material_Id *uint `json:"material-id"` + Material_Code *string `json:"material-code"` Count *uint16 `json:"count"` } type ReadDetailDto struct { @@ -46,7 +46,7 @@ type ResponseDto struct { ecore.Main MaterialOrder_Id *uint `json:"materialOrder_id"` MaterialOrder *emo.MaterialOrder `json:"materialOrder,omitempty"` - Material_Id *uint `json:"material_id"` + Material_Code *string `json:"material_code"` Material *em.Material `json:"material,omitempty"` Count *uint16 `json:"count"` } @@ -55,7 +55,7 @@ func (d MaterialOrderItem) ToResponse() ResponseDto { resp := ResponseDto{ MaterialOrder_Id: d.MaterialOrder_Id, MaterialOrder: d.MaterialOrder, - Material_Id: d.Material_Id, + Material_Code: d.Material_Code, Material: d.Material, Count: d.Count, } diff --git a/internal/domain/main-entities/material-order-item/entity.go b/internal/domain/main-entities/material-order-item/entity.go index 1ee8ff20..2a85122a 100644 --- a/internal/domain/main-entities/material-order-item/entity.go +++ b/internal/domain/main-entities/material-order-item/entity.go @@ -10,8 +10,7 @@ type MaterialOrderItem struct { ecore.Main // adjust this according to the needs MaterialOrder_Id *uint `json:"materialOrder_id"` MaterialOrder *emo.MaterialOrder `json:"materialOrder,omitempty" gorm:"foreignKey:MaterialOrder_Id;references:Id"` - Material_Id *uint `json:"material_id"` Material_Code *string `json:"material_code"` - Material *em.Material `json:"material,omitempty" gorm:"foreignKey:Material_Id;references:Id"` + Material *em.Material `json:"material,omitempty" gorm:"foreignKey:Material_Code;references:Code"` Count *uint16 `json:"count"` } diff --git a/internal/use-case/main-use-case/device-order-item/helper.go b/internal/use-case/main-use-case/device-order-item/helper.go index 5c6a0e68..8c0be91f 100644 --- a/internal/use-case/main-use-case/device-order-item/helper.go +++ b/internal/use-case/main-use-case/device-order-item/helper.go @@ -18,6 +18,6 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.DeviceOrderItem) { } data.DeviceOrder_Id = inputSrc.DeviceOrder_Id - data.Device_Id = inputSrc.Device_Id + data.Device_Code = inputSrc.Device_Code data.Count = inputSrc.Count } diff --git a/internal/use-case/main-use-case/material-order-item/helper.go b/internal/use-case/main-use-case/material-order-item/helper.go index 25e89a21..f66daa0b 100644 --- a/internal/use-case/main-use-case/material-order-item/helper.go +++ b/internal/use-case/main-use-case/material-order-item/helper.go @@ -18,6 +18,6 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.MaterialOrderItem) } data.MaterialOrder_Id = inputSrc.MaterialOrder_Id - data.Material_Id = inputSrc.Material_Id + data.Material_Code = inputSrc.Material_Code data.Count = inputSrc.Count }