Files
warehouse-management-BE/internal/mapper/component_code_mapper.go
2026-05-11 11:00:46 +07:00

55 lines
1.2 KiB
Go

package mapper
import (
"wm-backend/internal/models"
db "wm-backend/sqlc_gen"
"encoding/json"
"github.com/jackc/pgx/v5/pgtype"
)
func ToDomainComponentCode(r db.ComponentCode) *models.ComponentCode {
return &models.ComponentCode{
ID: r.ID,
ComponentID: r.ComponentID,
Code: r.Code,
CodeType: r.CodeType.String,
IsPrimary: r.IsPrimary,
Metadata: json.RawMessage(r.Metadata),
CreatedAt: r.CreatedAt,
}
}
func ToModelComponentCode(r *models.ComponentCode) *db.CreateComponentCodeParams {
return &db.CreateComponentCodeParams{
ComponentID: r.ComponentID,
Code: r.Code,
CodeType: pgtype.Text{
String: r.CodeType,
Valid: r.CodeType != "",
},
IsPrimary: r.IsPrimary,
Metadata: []byte(r.Metadata),
CreatedAt: r.CreatedAt,
}
}
func ToUpdateModelComponentCode(r *models.ComponentCode) *db.UpdateComponentCodeParams {
var metadata []byte
if len(r.Metadata) > 0 {
metadata = []byte(r.Metadata)
}
return &db.UpdateComponentCodeParams{
Code: r.Code,
ComponentID: r.ComponentID,
CodeType: pgtype.Text{
String: r.CodeType,
Valid: r.CodeType != "",
},
IsPrimary: r.IsPrimary,
Metadata: metadata,
ID: r.ID,
}
}