55 lines
1.9 KiB
Go
55 lines
1.9 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type ProductRecipe struct {
|
|
ID uuid.UUID `json:"id"`
|
|
OrganizationID uuid.UUID `json:"organization_id"`
|
|
OutletID *uuid.UUID `json:"outlet_id"`
|
|
ProductID uuid.UUID `json:"product_id"`
|
|
VariantID *uuid.UUID `json:"variant_id"`
|
|
IngredientID uuid.UUID `json:"ingredient_id"`
|
|
Quantity float64 `json:"quantity"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
|
|
// Relations
|
|
Product *Product `json:"product,omitempty"`
|
|
ProductVariant *ProductVariant `json:"product_variant,omitempty"`
|
|
Ingredient *Ingredient `json:"ingredient,omitempty"`
|
|
}
|
|
|
|
type CreateProductRecipeRequest struct {
|
|
OutletID *uuid.UUID `json:"outlet_id"`
|
|
ProductID uuid.UUID `json:"product_id" validate:"required"`
|
|
VariantID *uuid.UUID `json:"variant_id"`
|
|
IngredientID uuid.UUID `json:"ingredient_id" validate:"required"`
|
|
Quantity float64 `json:"quantity" validate:"required,gt=0"`
|
|
}
|
|
|
|
type UpdateProductRecipeRequest struct {
|
|
OutletID *uuid.UUID `json:"outlet_id"`
|
|
VariantID *uuid.UUID `json:"variant_id"`
|
|
Quantity float64 `json:"quantity" validate:"required,gt=0"`
|
|
}
|
|
|
|
type ProductRecipeResponse struct {
|
|
ID uuid.UUID `json:"id"`
|
|
OrganizationID uuid.UUID `json:"organization_id"`
|
|
OutletID *uuid.UUID `json:"outlet_id"`
|
|
ProductID uuid.UUID `json:"product_id"`
|
|
VariantID *uuid.UUID `json:"variant_id"`
|
|
IngredientID uuid.UUID `json:"ingredient_id"`
|
|
Quantity float64 `json:"quantity"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
|
|
// Relations
|
|
Product *Product `json:"product,omitempty"`
|
|
ProductVariant *ProductVariant `json:"product_variant,omitempty"`
|
|
Ingredient *Ingredient `json:"ingredient,omitempty"`
|
|
} |