feat: add components management functionality

This commit is contained in:
Tran Anh Tuan
2026-05-11 10:35:38 +07:00
parent 50564e9b78
commit bf20286f04
15 changed files with 1662 additions and 1 deletions

View File

@@ -0,0 +1,19 @@
package models
import (
"encoding/json"
"time"
)
type Component struct {
ID int64 `json:"id"`
ComponentTypeID int64 `json:"componentTypeId"`
Name string `json:"name"`
Description string `json:"description"`
Unit string `json:"unit"`
TotalQuantity int32 `json:"totalQuantity"`
MinQuantity int32 `json:"minQuantity"`
Metadata json.RawMessage `json:"metadata"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}

View File

@@ -0,0 +1,21 @@
package requests
import "encoding/json"
type CreateComponentRequest struct {
ComponentTypeID int64 `json:"componentTypeId" binding:"required"`
Name string `json:"name" binding:"required"`
Description string `json:"description"`
Unit string `json:"unit" binding:"required"`
MinQuantity int32 `json:"minQuantity" binding:"required"`
Metadata json.RawMessage `json:"metadata"`
}
type UpdateComponentRequest struct {
ComponentTypeID int64 `json:"componentTypeId"`
Name string `json:"name"`
Description string `json:"description"`
Unit string `json:"unit"`
MinQuantity int32 `json:"minQuantity"`
Metadata json.RawMessage `json:"metadata"`
}

View File

@@ -0,0 +1,14 @@
package responses
type CreateComponentResponse struct {
ID int64 `json:"id"`
}
type UpdateComponentResponse struct {
ID int64 `json:"id"`
ComponentTypeID int64 `json:"componentTypeId"`
Name string `json:"name"`
Description string `json:"description"`
Unit string `json:"unit"`
MinQuantity int32 `json:"minQuantity"`
}