mirror of
https://github.com/serty2005/rmser.git
synced 2026-02-05 03:12:34 -06:00
35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
package catalog
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/shopspring/decimal"
|
|
)
|
|
|
|
// Product - Номенклатура
|
|
type Product struct {
|
|
ID uuid.UUID `gorm:"type:uuid;primary_key;"`
|
|
ParentID *uuid.UUID `gorm:"type:uuid;index"`
|
|
Name string `gorm:"type:varchar(255);not null"`
|
|
Type string `gorm:"type:varchar(50);index"` // GOODS, DISH, PREPARED, etc.
|
|
Num string `gorm:"type:varchar(50)"`
|
|
Code string `gorm:"type:varchar(50)"`
|
|
UnitWeight decimal.Decimal `gorm:"type:numeric(19,4)"`
|
|
UnitCapacity decimal.Decimal `gorm:"type:numeric(19,4)"`
|
|
IsDeleted bool `gorm:"default:false"`
|
|
|
|
Parent *Product `gorm:"foreignKey:ParentID"`
|
|
Children []*Product `gorm:"foreignKey:ParentID"`
|
|
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
}
|
|
|
|
// Repository интерфейс для каталога
|
|
type Repository interface {
|
|
SaveProducts(products []Product) error
|
|
GetAll() ([]Product, error)
|
|
GetActiveGoods() ([]Product, error)
|
|
}
|