Files
warehouse-management-BE/internal/repositories/warehouse_repository.go
Tran Anh Tuan 6a4a96e0ca Base Project
2026-05-08 14:32:24 +07:00

49 lines
1.4 KiB
Go

package repositories
import (
"context"
"wm-backend/internal/mapper"
"wm-backend/internal/models"
db "wm-backend/sqlc_gen"
)
func CreateWareHouse(ctx context.Context, queries *db.Queries, body models.Warehouse) (models.Warehouse, error) {
warehouse, err := queries.CreateWarehouse(ctx, *mapper.ToModelWarehouse(&body))
if err != nil {
return models.Warehouse{}, err
}
return *mapper.ToDomainWarehouse(warehouse), nil
}
func GetWarehouseByID(ctx context.Context, queries *db.Queries, id int64) (models.Warehouse, error) {
result, err := queries.GetWarehouseByID(ctx, id)
if err != nil {
return models.Warehouse{}, err
}
return *mapper.ToDomainWarehouse(result), nil
}
func ListWarehouses(ctx context.Context, queries *db.Queries) ([]models.Warehouse, error) {
results, err := queries.ListWarehouses(ctx)
if err != nil {
return nil, err
}
var items []models.Warehouse
for _, r := range results {
items = append(items, *mapper.ToDomainWarehouse(r))
}
return items, nil
}
func UpdateWarehouse(ctx context.Context, queries *db.Queries, body models.Warehouse) (models.Warehouse, error) {
result, err := queries.UpdateWarehouse(ctx, *mapper.ToUpdateModelWarehouse(&body))
if err != nil {
return models.Warehouse{}, err
}
return *mapper.ToDomainWarehouse(result), nil
}
func DeleteWarehouse(ctx context.Context, queries *db.Queries, id int64) error {
return queries.DeleteWarehouse(ctx, id)
}