Files
projet_gestion_commande/backend/gestion/models/product.go
T
2026-02-22 14:36:56 +01:00

46 lines
1.8 KiB
Go

package models
import "time"
type Product struct {
ID int `json:"id"`
Name string `json:"name" binding:"required"`
Category string `json:"category" binding:"required"`
Description string `json:"description"`
Stock float64 `json:"stock"` // ← ajouter le stock ici
Prices []ProductPrice `json:"prices"`
Media []Media `json:"media,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type ProductPrice struct {
ID int `json:"id"`
ProductID int `json:"product_id"`
Quantity float64 `json:"quantity" binding:"required"`
Price float64 `json:"price" binding:"required"`
CreatedAt time.Time `json:"created_at"`
}
type StockInfo struct {
ProductID int `json:"product_id"`
ProductName string `json:"product_name"`
Category string `json:"category"`
Quantity float64 `json:"quantity"`
Reserved float64 `json:"reserved"`
Available float64 `json:"available"`
LastUpdated string `json:"last_updated"`
}
// ============================================
// MÉTHODES POUR L'INTERFACE ProductInterface
// ============================================
func (p *Product) GetName() string { return p.Name }
func (p *Product) GetCategory() string { return p.Category }
func (p *Product) GetDescription() string { return p.Description }
func (p *Product) GetStock() float64 { return p.Stock } // ← méthode pour le stock
func (p *Product) GetPrices() []ProductPrice { return p.Prices }
func (p *Product) SetID(id int) { p.ID = id }
func (p *Product) SetCreatedAt(t time.Time) { p.CreatedAt = t }
func (p *Product) SetUpdatedAt(t time.Time) { p.UpdatedAt = t }