Merge branch 'migration-vanilia' of https://github.com/dikstub-rssa/simrs-be into feat/sync-source

This commit is contained in:
vanilia
2025-11-17 11:19:11 +07:00
29 changed files with 496 additions and 117 deletions
@@ -19,5 +19,5 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.DeviceOrderItem) {
data.DeviceOrder_Id = inputSrc.DeviceOrder_Id
data.Device_Code = inputSrc.Device_Code
data.Count = inputSrc.Count
data.Quantity = inputSrc.Quantity
}
@@ -47,13 +47,13 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Pr
tx = dg.I
}
tx = tx.
tx = tx.Debug().
Model(&e.PrescriptionItem{}).
Scopes(gh.Preload(input.Includes)).
Scopes(gh.Filter(input.FilterDto)).
Count(&count).
Scopes(gh.Paginate(input, &pagination)).
Order("\"CreatedAt\" DESC")
Scopes(gh.Sort(input.Sort))
if err := tx.Find(&data).Error; err != nil {
if err == gorm.ErrRecordNotFound {
@@ -1,6 +1,7 @@
package therapy_protocol
import (
"errors"
"strconv"
"gorm.io/gorm"
@@ -15,6 +16,8 @@ import (
ee "simrs-vx/internal/domain/main-entities/encounter"
e "simrs-vx/internal/domain/main-entities/therapy-protocol"
erc "simrs-vx/internal/domain/references/common"
ud "simrs-vx/internal/use-case/main-use-case/doctor"
ue "simrs-vx/internal/use-case/main-use-case/encounter"
)
@@ -45,6 +48,8 @@ func Create(input e.CreateDto) (*d.Data, error) {
return err
}
statusNew := erc.DVCNew
input.Status_Code = &statusNew
if resData, err := CreateData(input, &event, tx); err != nil {
return err
} else {
@@ -291,6 +296,66 @@ func Delete(input e.DeleteDto) (*d.Data, error) {
}
func Verify(input e.VerifyDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: input.Id}
var data *e.TherapyProtocol
var err error
event := pl.Event{
Feature: "Verify",
Source: source,
}
// Start log
pl.SetLogInfo(&event, input, "started", "verify")
err = dg.I.Transaction(func(tx *gorm.DB) error {
pl.SetLogInfo(&event, rdDto, "started", "DBReadDetail")
if data, err = ReadDetailData(rdDto, &event, tx); err != nil {
return err
}
if !data.IsNew() {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-state-mismatch",
Detail: "data is not new",
Raw: errors.New("data is not new"),
}
return pl.SetLogError(&event, input)
}
data.Status_Code = &input.Status_Code
err = tx.Save(&data).Error
if err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-update-fail",
Detail: "Database update failed",
Raw: err,
}
return pl.SetLogError(&event, input)
}
pl.SetLogInfo(&event, nil, "complete")
return nil
})
if err != nil {
return nil, err
}
return &d.Data{
Meta: d.IS{
"source": source,
"structure": "single-data",
"status": "verify",
},
Data: data.ToResponse(),
}, nil
}
func validateForeignKey(input e.CreateDto) error {
// validate encounter
if input.Encounter_Id != nil {