39 lines
881 B
Go
39 lines
881 B
Go
package repository
|
|
|
|
import (
|
|
"git.mchus.pro/mchus/quoteforge/internal/models"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type CategoryRepository struct {
|
|
db *gorm.DB
|
|
}
|
|
|
|
func NewCategoryRepository(db *gorm.DB) *CategoryRepository {
|
|
return &CategoryRepository{db: db}
|
|
}
|
|
|
|
func (r *CategoryRepository) GetAll() ([]models.Category, error) {
|
|
var categories []models.Category
|
|
err := r.db.Order("display_order ASC").Find(&categories).Error
|
|
return categories, err
|
|
}
|
|
|
|
func (r *CategoryRepository) GetByCode(code string) (*models.Category, error) {
|
|
var category models.Category
|
|
err := r.db.Where("code = ?", code).First(&category).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &category, nil
|
|
}
|
|
|
|
func (r *CategoryRepository) GetByID(id uint) (*models.Category, error) {
|
|
var category models.Category
|
|
err := r.db.First(&category, id).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &category, nil
|
|
}
|