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 }