BE-MiniERP/modules/inventory/repository/colour__repo.go

46 lines
1022 B
Go

package repository
import (
"BE-MiniERP/modules/inventory/models"
"gorm.io/gorm"
)
type ColourRepository struct {
DB *gorm.DB
}
func NewColourRepository(db *gorm.DB) *ColourRepository {
return &ColourRepository{DB: db}
}
func (r *ColourRepository) FindAll(page, limit, offset int, search string) ([]models.Colour, error) {
var colours []models.Colour
query := r.DB.Model(&models.Colour{})
if search != "" {
query = query.Where("name ILIKE ? OR code ILIKE ? OR hex ILIKE ?", "%"+search+"%", "%"+search+"%", "%"+search+"%")
}
err := query.
Order("created_at DESC").
Limit(limit).
Offset(offset).
Find(&colours).Error
return colours, err
}
func (r *ColourRepository) Create(colour *models.Colour) error {
return r.DB.Create(colour).Error
}
func (r *ColourRepository) Update(id uint, data *models.Colour) error {
return r.DB.Model(&models.Colour{}).Where("id = ?", id).Updates(data).Error
}
func (r *ColourRepository) Delete(id uint) error {
return r.DB.Delete(&models.Colour{}, id).Error
}