feat: add container management functionality

This commit is contained in:
Tran Anh Tuan
2026-05-11 09:42:19 +07:00
parent 9f27436d5d
commit 7c9a0d4670
15 changed files with 1654 additions and 1 deletions

View File

@@ -0,0 +1,61 @@
package mapper
import (
"wm-backend/internal/models"
db "wm-backend/sqlc_gen"
"github.com/jackc/pgx/v5/pgtype"
)
func ToDomainContainer(r db.Container) *models.Container {
return &models.Container{
ID: r.ID,
ShelfID: r.ShelfID,
Name: r.Name,
ContainerType: string(r.ContainerType),
Description: r.Description.String,
MaxCapacity: r.MaxCapacity.Int32,
Metadata: r.Metadata,
CreatedAt: r.CreatedAt,
UpdatedAt: r.UpdatedAt,
}
}
func ToModelContainer(r *models.Container) *db.CreateContainerParams {
return &db.CreateContainerParams{
ShelfID: r.ShelfID,
Name: r.Name,
ContainerType: db.ContainerTypeEnum(r.ContainerType),
Description: pgtype.Text{
String: r.Description,
Valid: r.Description != "",
},
MaxCapacity: pgtype.Int4{
Int32: r.MaxCapacity,
Valid: r.MaxCapacity != 0,
},
Metadata: r.Metadata,
CreatedAt: r.CreatedAt,
}
}
func ToUpdateModelContainer(r *models.Container) *db.UpdateContainerParams {
return &db.UpdateContainerParams{
Name: r.Name,
ContainerType: db.NullContainerTypeEnum{
ContainerTypeEnum: db.ContainerTypeEnum(r.ContainerType),
Valid: r.ContainerType != "",
},
Description: pgtype.Text{
String: r.Description,
Valid: r.Description != "",
},
MaxCapacity: pgtype.Int4{
Int32: r.MaxCapacity,
Valid: r.MaxCapacity != 0,
},
Metadata: r.Metadata,
UpdatedAt: r.UpdatedAt,
ID: r.ID,
}
}