product.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package model
  2. import (
  3. "kng_feed_api/database"
  4. )
  5. type Product struct {
  6. CodeUT10 string `gorm:"size:6;not null; unique; index; primaryKey" json:"code_ut10"`
  7. Name string `gorm:"size:100" json:"name"`
  8. Manufacturer string `gorm:"size:50" json:"manufacturer"`
  9. ArticleNumber string `gorm:"size:50" json:"article_number"`
  10. Brand string `gorm:"size:100" json:"brand"`
  11. Unit string `gorm:"size:50" json:"unit"`
  12. GroupLimit string `gorm:"size:2" json:"group_limit"`
  13. GroupPrice string `gorm:"size:50" json:"group_price"`
  14. NumberCatalog string `gorm:"size:50" json:"number_catalog"`
  15. NumberDrawing string `gorm:"size:50" json:"number_drawing"`
  16. NumberBrand string `gorm:"size:10" json:"number_brand"`
  17. NumberPrefix string `gorm:"size:4" json:"number_prefix"`
  18. NumberArticle string `gorm:"size:25" json:"number_article"`
  19. NumberSuffix string `gorm:"size:3" json:"number_suffix"`
  20. CategoryId string `gorm:"size:5" json:"categoryId"`
  21. }
  22. type ProductsArray struct {
  23. Products []Product `binding:"dive" json:"products"`
  24. }
  25. func GetAllProducts() ([]Product, error) {
  26. var products []Product
  27. result := database.Database.Find(&products)
  28. if result.Error != nil {
  29. return products, result.Error
  30. }
  31. return products, nil
  32. }
  33. func GetProductsCount() (int, error) {
  34. var products []Product
  35. result := database.Database.Find(&products)
  36. if result.Error != nil {
  37. return 0, result.Error
  38. }
  39. return int(result.RowsAffected), nil
  40. }
  41. func (product *Product) Save() (*Product, error) {
  42. err := database.Database.Save(&product).Error
  43. if err != nil {
  44. return &Product{}, err
  45. }
  46. return product, nil
  47. }