Producte show

Producte werden nun angezeigt .
This commit is contained in:
2023-11-14 20:27:23 +01:00
parent 8d81958da3
commit 54fdfe30a9
11 changed files with 458 additions and 29 deletions

View File

@@ -1,16 +1,55 @@
package models
import (
"github.com/shopspring/decimal"
"gorm.io/gorm"
"time"
)
type Product struct {
ID string
ParentID string
Name string
Categories []Category `gorm:"many2many:product_categories;"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt
ID string `gorm:"size:36;not null;uniqueIndex;primary_key"`
ParentID string `gorm:"size:36;index"`
Name string `gorm:"size:255"`
Slug string `gorm:"size:255"`
ProductImages []ProductImage
Price decimal.Decimal `gorm:"type:decimal(16,2);"`
Categories []Category `gorm:"many2many:product_categories;"`
ShortDescription string `gorm:"type:text"`
Description string `gorm:"type:text"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt
}
func (p *Product) GetProducts(db *gorm.DB, perPage int, page int) (*[]Product, int64, error) {
var count int64
var products []Product
err := db.Debug().Model(&Product{}).Count(&count).Error
if err != nil {
return nil, 0, err
}
offset := (page - 1) * perPage
err = db.Debug().Model(&Product{}).Order("created_at desc").Limit(perPage).Offset(offset).Find(&products).Error
if err != nil {
return nil, 0, err
}
return &products, count, nil
}
func (p *Product) FindByID(db *gorm.DB, productID string) (*Product, error) {
var err error
var product Product
err = db.Debug().Preload("ProductImages").Model(&Product{}).Where("id = ?", productID).First(&product).Error
//err = db.Debug().Model(&Product{}).Where("id = ?", productID).First(&product).Error
if err != nil {
return nil, err
}
return &product, nil
}