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

44 lines
1.1 KiB
Go

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